나는 경험있는 Mac/iOS 개발자이지만 처음에는 C++로 프로그램하기 시작했습니다. 필자는 수년 동안 C++을 사용하지 않았으며 지금은 만들려는 새로운 종류의 파일 형식에 대한 다중 플랫폼 지원을 원하기 때문에 그렇게 할 시간입니다.OS X Lion C++ 11, 부스트 및 기타 질문들
C++는 지난 수년간 진화 해 왔으며, 제 3 자 라이브러리가 매우 비극적으로 엉망이며 C++ 표준위원회의 노력으로 언어의 발전을 통제하고 있습니다. 그러므로 내 질문.
가능한 한 많은 고급 도구를 원하는대로 처리하고 동시에 가능한 표준을 준수하고 싶습니다. 필자의 주요 개발 플랫폼은 OS X Lion이며 Fedora 16 설치에 액세스 할 수 있습니다. 라이온 이상, Windows XP 이상 및 최신 Linux 커널을 대상으로하고 싶습니다. 따라서 하위 호환성은 여기에서 문제가되지 않습니다.
하나의 선택은 내 컴퓨터에 Boost 라이브러리를 설치하는 것입니다. 그러나 오랜 시간 전에 경험 한 것만 큼, 컴파일 시간 오류 및 OS X에서 수행해야하는 단점이있는 매우 고통스러운 프로세스입니다. 그 일을 지금 시도하면 그 경험이 똑같을 지 모르겠다. 다른 선택은 현재 라이온이 제공하는 TR1을 고수하는 것입니다. 그러나 TR1은 내가 아는 한 표준이 아니며, C++ 11에서 수행되도록 예정된 사실상의 사실적인 구현입니다. 그렇게하면 Boost가 제공하는 많은 고급 기능을 잃게됩니다.
이러한 두 가지 옵션을 손쉽게 사용할 수있는 고급 C++ 기능을 사용하고 표준을 최대한 준수하는 방법은 무엇입니까? Boost라면 Boost를 정적 라이브러리로 컴파일하여 최종 사용자 시스템에 Boost를 설치하지 않는 것이 좋습니다?
C++ 11 기능을위한 Xcode 4.3의 현재 지원은 무엇입니까?
위의 질문에 대한 의견은 물론 다른 의견도 보내 주시면 감사하겠습니다. 나는 현재 버전과 C++의 기능을 동기화하려고 노력하고 있는데, 처음 생각했을 때 그렇게 쉽지 않을 수도 있다는 것을 깨닫기 시작했다.
감사합니다.
매우 유익합니다. 나는 C++에 대한 윈도우 지원이 더 어려울 것이라고 상상했다. 창문이 막혔다면 (나는이 라이브러리를 C#으로 작성할 수 있다고 생각합니다) 라이브러리의 형태로 Boost를 사용하고 싶었습니다. Boost를 정적 라이브러리로 컴파일하고 라이브러리와 라이브러리를 연결하는 것이 트릭입니다. 정적 라이브러리의 경우 배포 가능한 아카이브 내에 코드가 내장되어 있으므로 외부 리소스가 필요하지 않습니다. – csotiriou
@ChristosSotiriou : 당신이 부스트를 정적으로 컴파일한다면, 그렇습니다. 그냥 * 작동해야합니다. 또한 C++ 11 기능을 사용하지 않거나 Windows 라이브러리를 사용하지 않는 한 Windows 용 C++ 코드도 사용할 수 있습니다. –
@MatthieuM .: C++ 11에 대한 VC2010의 지원은 나쁘지 않습니다. 필요한 것은 당신이하는 일을 알고 있다는 것입니다. 이동 생성자를 직접 작성하는 한 r-value 참조를 사용할 수 있습니다. 그리고 조금 더 제한된 형태의 람다와 몇 가지 다른 것들을 사용할 수 있습니다. Regex에서 shared_ptr, unique_ptr까지 새로운 표준 라이브러리 기능을 많이 지원합니다. –