diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-02-05 20:35:30 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-02-05 20:35:30 +0000 |
| commit | 7115aee1098bddd76b7c0cde42236d813561e3a6 (patch) | |
| tree | 319111df97602558810ff2e18cd544107567da52 /clang | |
| parent | c9fe3b94a5902bf730d526c2dc19da442d57a56f (diff) | |
| download | bcm5719-llvm-7115aee1098bddd76b7c0cde42236d813561e3a6.tar.gz bcm5719-llvm-7115aee1098bddd76b7c0cde42236d813561e3a6.zip | |
Add a __has_feature check for default template arguments in function
templates, a C++0x feature.
llvm-svn: 124973
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/docs/LanguageExtensions.html | 5 | ||||
| -rw-r--r-- | clang/lib/Lex/PPMacroExpansion.cpp | 1 | ||||
| -rw-r--r-- | clang/test/Lexer/has_feature_cxx0x.cpp | 9 |
3 files changed, 15 insertions, 0 deletions
diff --git a/clang/docs/LanguageExtensions.html b/clang/docs/LanguageExtensions.html index 8b6b96f6f28..8f412c63653 100644 --- a/clang/docs/LanguageExtensions.html +++ b/clang/docs/LanguageExtensions.html @@ -34,6 +34,7 @@ td { <ul> <li><a href="#cxx_attributes">C++0x attributes</a></li> <li><a href="#cxx_decltype">C++0x <tt>decltype()</tt></a></li> + <li><a href="#cxx_default_function_template_args">C++0x default template arguments in function templates</a></li> <li><a href="#cxx_deleted_functions">C++0x deleted functions</a></li> <li><a href="#cxx_lambdas">C++0x lambdas</a></li> <li><a href="#cxx_nullptr">C++0x nullptr</a></li> @@ -381,6 +382,10 @@ not yet implemented will be noted.</p> <p>Use <tt>__has_feature(cxx_attributes)</tt> to determine if support for attribute parsing with C++0x's square bracket notation is enabled.</p> +<h3 id="cxx_default_function_template_args">C++0x default template arguments in function templates</h3> + +<p>Use <tt>__has_feature(cxx_default_function_template_args)</tt> to determine if support for default template arguments in function templates is enabled.</p> + <h3 id="cxx_deleted_functions">C++0x deleted functions</tt></h3> <p>Use <tt>__has_feature(cxx_deleted_functions)</tt> to determine if support for diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 4a719cac6c4..cc294ee2665 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -555,6 +555,7 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) { .Case("cxx_attributes", LangOpts.CPlusPlus0x) //.Case("cxx_auto_type", false) .Case("cxx_decltype", LangOpts.CPlusPlus0x) + .Case("cxx_default_function_template_args", LangOpts.CPlusPlus0x) .Case("cxx_deleted_functions", LangOpts.CPlusPlus0x) .Case("cxx_inline_namespaces", LangOpts.CPlusPlus0x) //.Case("cxx_lambdas", false) diff --git a/clang/test/Lexer/has_feature_cxx0x.cpp b/clang/test/Lexer/has_feature_cxx0x.cpp index 2944ae374c5..21950148cfe 100644 --- a/clang/test/Lexer/has_feature_cxx0x.cpp +++ b/clang/test/Lexer/has_feature_cxx0x.cpp @@ -109,3 +109,12 @@ int no_reference_qualified_functions(); // CHECK-0X: has_reference_qualified_functions // CHECK-NO-0X: no_reference_qualified_functions +#if __has_feature(cxx_default_function_template_args) +int has_default_function_template_args(); +#else +int no_default_function_template_args(); +#endif + +// CHECK-0X: has_default_function_template_args +// CHECK-NO-0X: no_default_function_template_args + |

