비주얼 C++ 2003은 export를 예약어로 전혀 인식하지 않으며(export 뭐임? 먹는 거임? 우걱우걱.. 컴파일러가 먹는 건 일반 심볼들.. ㅋㅋ),
참고로 덧붙이자면 vector<list<int>> ap; 도 2003에서는 에러가 나는 반면, 2008은 정상 처리되네요. (닫는 꺽쇠를 > >로 띄워야 함)
2005는 결과가 어떤지 모르겠습니다.
말이 나왔으니 말인데, C++0x는 정말 기괴한 변화가 많아서 컴파일러 구현의 난해함은 한층 더 안드로메다로 갈 듯합니다.
R-value 참조자 && 는 가히 억소리 나고
특히 람다 대수 개념 도입 덕분에(함수도 자유롭게 value 취급) 이제 C++도 사실상 nested function 구현이 가능해진 거나 마찬가지로 보입니다.
김 기윤님께 //
지금까지 쌓아둔 코드의 양이 많아서 다른 언어로 넘어갈 수 없다면, 50년이 지나도 100년이 지나도 계속 C,C++을 사용해야겠죠. 그건 아무리 생각해도 현명한 일은 아닙니다. 현대 컴퓨터 언어들이 그동안 이뤄낸 많은 발전들을 모두 포기해야 하니까요.
그리고 게임 엔진 정도라면 C++로 구현하나 C#으로 구현하나 속도면에서 대단한 차이가 나지는 않습니다. 왜냐면 요즘 게임들은 많은 경우 CPU보다는 GPU의 연산량이 더 많은 경우가 많고, 컴퓨터들도 2개 이상의 CPU 코어를 가지고 병렬로 처리하기 때문이죠.
오히려 Memory leak 등이 잘 발생하지 않기 때문에 C#이나 JAVA를 이용하는 편이 나은 부분도 있습니다. 이로 인한 오버헤드가 있긴 하지만 개발 편의 같은 부분에서 얻는 트레이드 오프 관점으로 생각하면 됩니다.
다만 지금까지 만들어진 게임 엔진들이 C++을 기반으로 만들어져 있고, XBOX 360이나 PS3용으로 .NET 프레임워크가 포팅되지 않았기 때문에 사용하지 않고 있을 뿐입니다.
C#이라던가 Java 를 수업시간 등을 통해서 좀 익힌 뒤로 저의 관점이 좀 바뀌었습니다.
많이 알아야 많이 보이는 듯 합니다...
다만 왠지 C#이나 Java 는, (게임 프로그래머의 입장인 저한테는) 왠지 표현력이 적다...랄까, 답답하다는 느낌이 들었습니다. 단순히 익숙하지 않아서 그럴 수도 있겠지만, 왠지 의존적인 성향이 강하달까.. 그런 느낌이 듭니다. 아이러니한건, 의존성으로 따지면 객관적으로 볼때 C++ 이 최악이라는 건데도 이렇게 느낀다는 것...
무슨 뜻인지 알겠고 C/C++ 중독자-_-로서 저 역시 그 관점에 동의해요.
C#과 자바의 생산성은 C/C++이 가히 엄두도 못 낼 수준인 건 사실입니다.
허나 C/C++만이 지니고 있는 그 자유도와 포스는.. 소위 C/C++의 단점을 보완했다는 후대 언어들에서는 결코 찾을 수 없을 것입니다.
참고로 저도 자바와 C# 중에서는 C#이 더 좋습니다. 그냥 괜히 느낌이요. ^^;;