Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检测自由'==';运算符使用std::experimental::是否检测到\u v:std类的不同行为_C++_Templates_C++17_Stdvector_Sfinae - Fatal编程技术网

C++ 检测自由'==';运算符使用std::experimental::是否检测到\u v:std类的不同行为

C++ 检测自由'==';运算符使用std::experimental::是否检测到\u v:std类的不同行为,c++,templates,c++17,stdvector,sfinae,C++,Templates,C++17,Stdvector,Sfinae,我试图在编译时检测某些类是否定义了“equals to”操作符。我不理解以下代码段的行为: #包括 #包括 #包括 模板 使用supportsequaltoop_t=decltype(std::declval().operator==(std::declval()); 模板 使用supportSequalStore_t=decltype(std::declval()==std::declval()); 模板 结构A{}; int main(){ std::向量v0{1,2,3}; std::向量

我试图在编译时检测某些类是否定义了“equals to”操作符。我不理解以下代码段的行为:

#包括
#包括
#包括
模板
使用supportsequaltoop_t=decltype(std::declval().operator==(std::declval());
模板
使用supportSequalStore_t=decltype(std::declval()==std::declval());
模板
结构A{};
int main(){
std::向量v0{1,2,3};
std::向量v1{1,2,3};

//STD::CUT

你已经搞乱了你的操作符优先级。<代码> STD::由于非成员比较函数的存在而导致的CUT:“代码> STD::COUT好,谢谢,我的错字误导了我……我今天才学习C++,所以STD::vector有非成员比较函数!

0
1
0
0
0
0
0
0
template<typename T>
using SupportsEqualsToOp_t = decltype(std::declval<T>().operator==(std::declval<T>()));

template<typename T>
using SupportsEqualsToFree_t = decltype(operator==(std::declval<T>(), std::declval<T>()));

template<typename T>
using SupportsEqualsTo_t = decltype(std::declval<T>() == std::declval<T>());