StupidCoder 님이 쓰신 글 :
: https://notepad96.tistory.com/entry/C-2%EC%8C%8D-3%EC%8C%8D-%EA%B0%92-%EB%AC%B6%EA%B8%B0-Pair-Tuple
:
: 의 tuple 예제를 classic compiler로 컴파일 해 보았습니다.
:
: 그런데, [bcc32 Error] File1.cpp(30): E2451 Undefined symbol 'tuple' 에러가 발생 합니다.
:
: 클래식 컴파일러는 tuple 을 지원하지 않나요?
답변:
auto a = 123;
위 구문이 컴파일 된다고 해서 Classic(Legacy) 컴파일러가 C++11을 지원한다고 헛소리 하는 사람들도 있던데...
아래와 같은 코드를 컴파일 하지 못하면 절대로 C++11을 지원하는 컴파일러가 아닙니다.
class ClassA
{
public:
void foo() &&
{
printf("rvalue reference\n");
}
void foo() &
{
printf("lvalue reference\n");
}
};
int main()
{
ClassA c;
// print lvalue
c.foo();
// print rvalue
ClassA().foo();
}
rvalue 레퍼런스는 C++11에서 가장 크게 일어난 변화로 코드최적화에 중요한 역할을 하게 되는데
엠바 클래식 컴파일러는 C++11 조차도 지원하지 못하는 컴파일러일 뿐이고.
엠바 Classic 컴파일러는 델파이로 컴파일 되어있는 VCL을 사용하기 위한 기능만 갖고있는
30년 전에 나왔던 볼랜드 C++컴파일러와 다를 게 없고...
clang으로 컴파일 할 수 없을 경우를 위해서 보험으로 지금까지 남겨놓고 있는 구시대의 유물에 불과 함.
|