C++ Template, Expression Templates #1

Short Articles 2012. 2. 8. 16:50
표현식 템플릿은 숫자 배열 클래스를 지원하기 위해 고안된 프로그램이 기술입니다
이번 아티클은 다음과 같이 진행합니다
1. 단순한 배열 클래스 구현하여 배열 연산에 대한 문제제기
2. 표현식 템플릿 구현
3. 표현식 템플릿을 아는 랩퍼클래스 구현
4. 실재 표현식 템플릿 사용해서 어떻게 동작하는 방법 추적


배열 클래스를 구현해서 이런 계산을 해봅시다
단순한 배열 클래스 입니다 

단순한 배열을 클래스로 구현하였습니다
산술연산자는 다음과 같이 구현합니다
자 배열 클래스와 연산자를 구현하였습니다
배열 계산을 해봅시다
코드상 배열을 클래스로 구현했다고 생각할 수 있습니다
그러나 이런 구현은 두가지 이유때문에 비효울적으로 알려져 있습니다
1. 연산자의 모든 응용은 적어도 하나의 임시 배열을 생성한다
2. 연산자의 모든 응용은 인자와 결과 배열에 대해 부가적으로 탐색한다 

산술 배열 라이브러리의 초기 구현에서는 사용자들이 계산 할당자(+=,*=) 사용해 임시배열을
줄이게 권유했다고 합니다


이런 연산자를 사용하면 다음과 같이 수정할 수 있네요
표기 방식이 이상하고 여전히 tmp 배열이 필요하고
루프로 인해  메모리 읽기 대략 6000회, 쓰기 대략 4000회 사용합니다

우리가 원하는 실질적인 계산은 바로 이것입니다

배열을 어떻게 효율적으로 연산을 할까요? 

'Short Articles' 카테고리의 다른 글

C++ Template, Expression Templates #2  (0) 2012.02.17
C++ Basic Concept, Storage Duration  (0) 2012.02.10
C++ Basic Concept, One definition rule (ODR)  (2) 2012.02.07
C++11, Lambda Expressions #2  (0) 2012.02.01
C++11, Lambda Expressions #1  (2) 2012.01.30
: