decltype
2C++ 템플릿 함수 반환형 추론(decltype, auto)
타입이 무엇인가? 프로그래머가 템플릿 함수를 쓰려고 할 때 한 가지 문제점은, C++98에서 선언을 할 때에 어떤 타입을 사용해야 하는지 알아내는 방법이 항상 가능한 것은 아니라는 점입니다. template void Add(T1 a, T2 b) { ? result a + b; } 이때 result의 타입은 뭐가 되어야 하는지 알 수 없습니다. T1, T2의 타입들은 모든 타입이 올 수 있으므로 덧셈 연산으로 인해 뭐를 반환할지 알 수 없는 셈입니다. 예시 상황 #include class Integer { private: int n; public: Integer(int n = 0) { this->n = n; } Integer operator+(int n) { Integer result(this->n + n..
프로그래밍/C++ 2019.08.26 PlorenceC++ decltype 키워드(C++11)
decltype키워드 다음 내용은 C++11부터 적용된 내용이고 C++11부터 decltype이라는 키워드가 생겼습니다. decltype키워드는 주어진 이름이나 표현식의 구체적인 타입을 알려주는 키워드입니다. 사용 방법 int a = 0; decltype(a) b = a; //a와 동일한 타입의 변수 만들기 delctype(a+b) c = a+b; //a+b와 동일한 타입의 변수 만들기 컴파일러는 어떤 타입을 사용할 것인가 컴파일러는 어떤 타입을 사용할 것인지 결정하기 위해서 체크리스트를 거쳐야 합니다. decltype(expression) var; 1 만약 expression이 괄호가 없는 식별자일 경우라면 var는 식별자와 동일한 타입이 되며, const를 포함합니다. double x = 0; dou..
프로그래밍/C++ 2019.08.26 Plorence