我尝试了以下方法,但无法编译:
template<class LabelType>
requires requires { typename LabelType::LetterType; }
class MonoidalFSA
{
template<class T>
friend class MonoidalFSA;
};
error: redeclaration of ‘template<class LabelType> requires requires{typename LabelType::LetterType;} class MonoidalFSA’ with different constraints
尝试将约束添加到friend声明中,但仍然得到相同的错误。
template<class LabelType>
requires requires { typename LabelType::LetterType; }
class MonoidalFSA
{
template<class T>
requires requires { typename T::LetterType; }
friend class MonoidalFSA;
};
1条答案
按热度按时间km0tfn4u1#
你的第二个代码片段是正确的,但是看起来gcc并不接受它,因为它认为这两个requires表达式是不等价的。
如果你把它 Package 成一个概念,它就被接受了: