#ifndef METAL_EXAMPLE_HPP #define METAL_EXAMPLE_HPP #include #define CAT_IMPL(X, Y) X##Y #define CAT(X, Y) CAT_IMPL(X, Y) #define HIDE(...) struct CAT(anonymous, __LINE__) {__VA_ARGS__}; #define IS_SAME_IMPL(...) static_assert(__VA_ARGS__, #__VA_ARGS__) #define IS_SAME(...) IS_SAME_IMPL(std::is_same<__VA_ARGS__>::value) int main() { return 0; } #endif