CMake/Source/Checks/cm_cxx17_check.cpp
Zsolt Parragi d625dfcdf9 Avoid compiling CMake itself as C++17 with Clang's MSVC ABI
GUID functions in ATL cause compilation errors with this compiler.
Add the offending case to our check for C++17 support so that it
is not used by default when it does not work.
2019-02-11 15:04:19 +01:00

23 lines
416 B
C++

#include <cstdio>
#include <memory>
#include <unordered_map>
#ifdef _MSC_VER
# include <comdef.h>
#endif
int main()
{
std::unique_ptr<int> u(new int(0));
#ifdef _MSC_VER
// clang-cl has problems instantiating this constructor in C++17 mode
// error: indirection requires pointer operand ('const _GUID' invalid)
// return *_IID;
IUnknownPtr ptr{};
IDispatchPtr disp(ptr);
#endif
return *u;
}