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:
parent
9b7213dc47
commit
827309af76
|
@ -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) {}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue