diff options
Diffstat (limited to 'Source/Checks')
-rw-r--r-- | Source/Checks/cm_cxx17_check.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/Checks/cm_cxx17_check.cpp b/Source/Checks/cm_cxx17_check.cpp index 9ea52c4..593d9b2 100644 --- a/Source/Checks/cm_cxx17_check.cpp +++ b/Source/Checks/cm_cxx17_check.cpp @@ -3,6 +3,10 @@ #include <memory> #include <unordered_map> +#ifdef _MSC_VER +# include <comdef.h> +#endif + int main() { int a[] = { 0, 1, 2 }; @@ -14,5 +18,14 @@ int main() auto ci = std::size(a); 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 + *ai + *(bi - 1) + (3 - static_cast<int>(ci)); } |