File size: 378 Bytes
8ae5fc5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef METAL_EXAMPLE_HPP
#define METAL_EXAMPLE_HPP

#include <type_traits>

#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