(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1y/
var-templ34.C
// PR c++/66427
// { dg-do compile { target c++14 } }

template<typename T>
struct complex {};

struct plus {};
struct multiplies {};

template<typename T, typename Op>
constexpr T identity_element;

template<>
constexpr int identity_element<int, plus> = 0;

template<typename T>
constexpr complex<T> identity_element<complex<T>, plus> = {
    identity_element<T, plus>,
    identity_element<T, plus>
};