#include <cstdio> #include <iterator> #include <memory> #include <optional> #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 std::optional<int> oi = 0; return *u + *ai + *(bi - 1) + (3 - static_cast<int>(ci)) + oi.value(); }