В 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
}

Просто создайте тестовый проект с настройками по умолчанию и запустите его.

Другие вопросы по тегам