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.
|
// Dummy implementation. Test only the compiler feature.
|
||||||
namespace std {
|
namespace std {
|
||||||
@ -7,8 +10,9 @@ namespace std {
|
|||||||
{
|
{
|
||||||
const _E* __begin_;
|
const _E* __begin_;
|
||||||
size_t __size_;
|
size_t __size_;
|
||||||
|
public:
|
||||||
initializer_list(const int*, long unsigned int) {}
|
template <typename T1, typename T2>
|
||||||
|
initializer_list(T1, T2) {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user