Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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++ 关于C++;标准库_C++_Stl_Gnu - Fatal编程技术网

C++ 关于C++;标准库

C++ 关于C++;标准库,c++,stl,gnu,C++,Stl,Gnu,这句话的意思是: template<typename _Tp1, typename _Seq1> friend bool operator==(const stack<_Tp1, _Seq1>&, const stack<_Tp1, _Seq1>&); 模板 布勒朋友 运算符==(常量堆栈和,常量堆栈和); 在 是吗 为什么在辩论列表中重复两次? 谢谢,它声明了该类的两个堆栈之间的相等运算符,这是它访问私有成员所必需的 常量堆栈出现两次,因

这句话的意思是:

template<typename _Tp1, typename _Seq1>
friend bool
operator==(const stack<_Tp1, _Seq1>&, const stack<_Tp1, _Seq1>&);
模板
布勒朋友
运算符==(常量堆栈和,常量堆栈和);

是吗

为什么在辩论列表中重复两次?
谢谢,

它声明了该类的两个
堆栈之间的相等运算符,这是它访问私有成员所必需的

常量堆栈出现两次,因为有两个参数

当然,它可以写成

bool operator==(const stack<_Tp1, _Seq1>& y) const { return c == y.c; }
bool操作符==(常量堆栈&y)常量{return c==y.c;}

但是C++标准([Stop.Op])(23.3.5.3.4)似乎需要这个操作符是一个自由函数。

< P>它声明了这个类的两个代码>堆栈S A之间的相等运算符,这是它访问私有成员所必需的。
常量堆栈出现两次,因为有两个参数

当然,它可以写成

bool operator==(const stack<_Tp1, _Seq1>& y) const { return c == y.c; }
bool操作符==(常量堆栈&y)常量{return c==y.c;}

但C++标准(Suth.OPS[23.3.5.3.4)似乎要求这个算符是一个自由函数。

< P>这就像问为什么:

int strcmp( const char * a, const char * b );
const char*重复两次-有两件事需要比较。_Tp1 template参数是存储在堆栈中的对象的类型-要比较的两个堆栈必须存储相同的类型


<>请注意,阅读标准库源不是学习C++的好方法——你需要一本好书,比如.< /p> 这就像问为什么:

int strcmp( const char * a, const char * b );
const char*重复两次-有两件事需要比较。_Tp1 template参数是存储在堆栈中的对象的类型-要比较的两个堆栈必须存储相同的类型


请注意,阅读标准库源不是学习C++的好方法——你需要一本好书,比如.< /p>从我的快速看书,看来书中没有给出页眉和IMPL源代码。它(详细地)告诉您如何使用这些标准库。我知道一些C++,想深入研究真正的源代码,熟悉使用的习惯用法等等。但是,对方法不确定。@学习者不,它不给你库源——正如我所建议的,检查特定标准库实现的来源不是学习如何使用库的好方法。或者关于普通的C++习语。一个简单的例子-名称_Tp1在您自己的代码中是非法的。从我对这本书的快速浏览来看,这本书似乎没有给出标题和impl源代码。它(详细地)告诉您如何使用这些标准库。我知道一些C++,想深入研究真正的源代码,熟悉使用的习惯用法等等。但是,对方法不确定。@学习者不,它不给你库源——正如我所建议的,检查特定标准库实现的来源不是学习如何使用库的好方法。或者关于普通的C++习语。一个简单的例子-名称_Tp1在您自己的代码中是非法的。