mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 13:19:51 -05:00
Features: Record initializer list support for Intel 14 and above
Features recorded by commit v3.6.0-rc1~120^2~5 (Features: Record standards and features for Intel C++ on UNIX, 2016-04-28) for the Intel compiler left out initializer list support because our test case in `Tests/CompileFeatures/cxx_generalized_initializers.cpp` caused an internal compiler error. It turns out this is because the Intel compiler asserts the `initializer_list` constructor signatures to verify that they match its own `<initializer_list>` header. It was our dummy implementation used to test the language feature without any headers that caused the ICE. Revise it to use a constructor signature accepted by the Intel compiler. Fixes: #17829
This commit is contained in:
@@ -11,11 +11,17 @@ class initializer_list
|
||||
const _E* __begin_;
|
||||
size_t __size_;
|
||||
|
||||
#ifdef __INTEL_COMPILER
|
||||
// The Intel compiler internally asserts the constructor overloads, so
|
||||
// reproduce the constructor used in its <initializer_list> header.
|
||||
initializer_list(const _E*, size_t) {}
|
||||
#else
|
||||
public:
|
||||
template <typename T1, typename T2>
|
||||
initializer_list(T1, T2)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user