mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 21:30:01 -05:00
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.
This commit is contained in:
@@ -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) {}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user