diff options
Diffstat (limited to 'Source/Checks/cm_cxx17_check.cpp')
-rw-r--r-- | Source/Checks/cm_cxx17_check.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/Checks/cm_cxx17_check.cpp b/Source/Checks/cm_cxx17_check.cpp new file mode 100644 index 000000000..593d9b263 --- /dev/null +++ b/Source/Checks/cm_cxx17_check.cpp @@ -0,0 +1,31 @@ +#include <cstdio> +#include <iterator> +#include <memory> +#include <unordered_map> + +#ifdef _MSC_VER +# include <comdef.h> +#endif + +int main() +{ + int a[] = { 0, 1, 2 }; + auto ai = std::cbegin(a); + + int b[] = { 2, 1, 0 }; + auto bi = std::cend(b); + + 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)); +} |