diff options
author | Brad King <brad.king@kitware.com> | 2015-04-06 13:54:52 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-04-06 14:05:37 (GMT) |
commit | 827309af76fe3f51a2d589148ef98cf91f510c2b (patch) | |
tree | a947a00cb1c79137a37afce7c02a2d2fea2de314 | |
parent | 9b7213dc47d2477cb4ceb5032a9078412b5474bd (diff) | |
download | CMake-827309af76fe3f51a2d589148ef98cf91f510c2b.zip CMake-827309af76fe3f51a2d589148ef98cf91f510c2b.tar.gz CMake-827309af76fe3f51a2d589148ef98cf91f510c2b.tar.bz2 |
Tests: Fix CompileFeatures cxx_generalized_initializers example
The only reason this failed to compile on VS 2013 was because the
compiler uses different initializer_list constructor argument types than
our dummy implementation. The standard does not specify the non-default
constructor argument types for initializer_list. Use a template to
match any two-arg constructor a compiler might select (e.g. begin/end or
begin/len). Use #error to preserve the error on VS 2013.
-rw-r--r-- | Tests/CompileFeatures/cxx_generalized_initializers.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Tests/CompileFeatures/cxx_generalized_initializers.cpp b/Tests/CompileFeatures/cxx_generalized_initializers.cpp index 7bf356b..13544f3 100644 --- a/Tests/CompileFeatures/cxx_generalized_initializers.cpp +++ b/Tests/CompileFeatures/cxx_generalized_initializers.cpp @@ -1,3 +1,6 @@ +#if defined(_MSC_VER) && _MSC_VER == 1800 +# error "VS 2013 does not safely support this" +#endif // Dummy implementation. Test only the compiler feature. namespace std { @@ -7,8 +10,9 @@ namespace std { { const _E* __begin_; size_t __size_; - - initializer_list(const int*, long unsigned int) {} + public: + template <typename T1, typename T2> + initializer_list(T1, T2) {} }; } |