これはClang3.1とC++11のサポートステータスに関連していますが、そこで答えを見つけることができなかったので、ここでより具体的に説明しcxx_lambdas
ます。正確なセットアップでのclang3.1のサポートです。
Xcode 4.3.3と最新のコマンドラインツールパッケージ(2012年6月11日)をOSXLion10.7.4にインストールしました。私は今clang++バージョン3.1を持っています:
llins@jupara:~/projects/tests/C++11$ clang++ -v
Apple clang version 3.1 (tags/Apple/clang-318.0.61) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix
http://clang.llvm.org/cxx_status.htmlに基づいて、機能が利用可能になることを期待していcxx_lambdas
ましたが、これは私が得ているものではありません。
llins@jupara:~/projects/tests/C++11$ make
clang++ -std=c++11 -stdlib=libc++ test_clang_features.cpp -o test_clang_features
llins@jupara:~/projects/tests/C++11$ ./test_clang_features
FAILED feature tests:
__has_feature(cxx_constexpr) .................................. FAILED
__has_feature(cxx_generalized_initializers) ................... FAILED
__has_feature(cxx_inheriting_constructors) .................... FAILED
__has_feature(cxx_lambdas) .................................... FAILED
__has_feature(cxx_local_type_template_args) ................... FAILED
__has_feature(cxx_unrestricted_unions) ........................ FAILED
__has_feature(cxx_user_literals) .............................. FAILED
このレポートを取得するために実行したコードは次のとおりです。
#include <iostream>
using namespace std;
void main()
{
cout << "FAILED feature tests: " << endl;
// testing all features cxx_???? described in (only 3 shown here):
// http://llvm.org/releases/3.1/tools/clang/docs/LanguageExtensions.html#cxx11
#if !__has_feature(cxx_generalized_initializers)
cout << "__has_feature(cxx_generalized_initializers) ................... FAILED" << endl;
#endif
#if !__has_feature(cxx_implicit_moves)
cout << "__has_feature(cxx_implicit_moves) ............................. FAILED" << endl;
#endif
//... analogous tests ...
#if !__has_feature(cxx_lambdas)
cout << "__has_feature(cxx_lambdas) .................................... FAILED" << endl;
#endif
}
cxx_lambdas
失敗したことに注意してください。テストされた機能の完全なリストは次のとおりです。
cxx_access_control_sfinae cxx_alias_templates cxx_alignas
cxx_attributes cxx_auto_type cxx_constexpr cxx_decltype
cxx_default_function_template_args cxx_defaulted_functions
cxx_delegating_constructors cxx_deleted_functions cxx_exceptions
cxx_explicit_conversions cxx_generalized_initializers
cxx_implicit_moves cxx_inheriting_constructors cxx_inline_namespaces
cxx_lambdas cxx_local_type_template_args cxx_noexcept
cxx_nonstatic_member_init cxx_nullptr cxx_override_control
cxx_range_for cxx_raw_string_literals
cxx_reference_qualified_functions cxx_rtti cxx_rvalue_references
cxx_static_assert cxx_strong_enums cxx_trailing_return
cxx_unicode_literals cxx_unrestricted_unions cxx_user_literals
cxx_variadic_templates
cxx_lambdas
このclang++3.1のセットアップで使用できないのはなぜですか?