#include <iostream>

template <class T, class Tag>
struct traits;

template <>
struct traits<int, decltype([]{})> {
    inline static int i = [] { std::cout << "specialization 1\n"; return 0; }();
};

template <>
struct traits<int, decltype([]{})> {
    inline static int i = [] { std::cout << "specialization 2\n"; return 0; }();
};

int main()
{
    return 0;
}


Error or Valid ?