我试图用新的概念语法为自己做一个简单的例子。我决定测试一个类型是否定义了operator(),并创建了一个结构来使用SFINAE范式来测试,但是我遇到了类型问题。(std::false_type());
using type = decltype(check<type在添加typename之后,我现在收到
concepts.h:20:78: error: ‘typename Templates::Concept
但是,为了上述目的,我如何模仿类似于sizeof...操作符的东西呢?我不能在SFINAE构造中的某个地方使用auto [a, b, c]语法,因为它是一个分解声明,而且AFAIK任何声明都不能在decltype中使用,我也不能在lambda函数的主体中使用它,因为lambda函数也不能在模板参数中使用。当然,我希望有内置操作符(语法类似于sizeof[] S/sizeof[](S) for class S),但是下面这样的内容也是可以接受的:
templat