blob: 566a48dd24c305c8afa2e2e5a2b763193cbf5dd8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
template <typename F> struct A{};
template <typename Ret, typename C, typename... Args> struct A<Ret ( C::*)(Args...) noexcept> { static constexpr int value = 0; };
template <typename Ret, typename C, typename... Args> struct A<Ret (__vectorcall C::*)(Args...) noexcept> { static constexpr int value = 1; };
template <typename F> constexpr int A_v = A<F>::value;
struct B
{
void f() noexcept {}
void __vectorcall g() noexcept {}
};
int main()
{
return A_v<decltype(&B::f)> + A_v<decltype(&B::g)>;
}
|