В Xcode 4.5, что такое "компилятор по умолчанию" для "стандартной библиотеки C++" и "диалекта языка C++"?
Каково значение "Компилятор по умолчанию" для "Стандартной библиотеки C++" и "Диалект языка C++" в Xcode 4.5?
Я предполагаю, что это libstdC++ и GNU++98, но было бы неплохо получить разъяснения.
Из примечаний к выпуску Xcode 4.5:
Проекты, созданные с использованием этого выпуска XCode, используют новую реализацию libC++ стандартной библиотеки C++. Библиотека libC++ доступна только в iOS 5.0 и более поздних версиях и OS X 10.7 и более поздних версиях. 12221787
Чтобы включить в своем проекте более ранние выпуски iOS и OS X, установите для параметра сборки стандартной библиотеки C++ значение libstdC++ (стандартная библиотека Gnu C++).
Я заметил, что при создании нового проекта явно устанавливаются GNU++11 и libC++, но "Compiler Default", вероятно, является чем-то другим.
1 ответ
Вот лучший способ узнать это:
#include <iostream>
int main()
{
#ifdef _LIBCPP_VERSION
std::cout << "Using libc++\n";
#else
std::cout << "Using libstdc++\n";
#endif
#ifdef __GXX_EXPERIMENTAL_CXX0X__
#if __cplusplus == 1
std::cout << "Language mode = gnu++11\n";
#else
std::cout << "Language mode = c++11\n";
#endif
#else
#if __cplusplus == 1
std::cout << "Language mode = gnu++98\n";
#else
std::cout << "Language mode = c++98\n";
#endif
#endif
}
Просто создайте тестовый проект с настройками по умолчанию и запустите его.