草庐IT

list-template

全部标签

c++ - 错误 : Use of class template requires template argument list

当我尝试运行我的程序时,此错误显示为“errorC2955:'FOURTEEN':useofclasstemplaterequirestemplateargumentlist”#includeusingnamespacestd;templateclassFOURTEEN{private:Ta[n];public:voidReadData();voidDisplayData();};voidFOURTEEN::ReadData(){for(inti=0;i>a.[i];}voidFOURTEEN::DisplayData(){for(inti=0;i>a.[i]P;//Readdatai

c++ - 将 list<A*> 转换为 list<B*> ,其中 B 继承 A

我有一个函数voiddoSomething(listlist1,listlist2)和类classB:AclassC:A有没有直接调用函数的方式voiddoSomething(listlistOfB,listlistOfC)还是我必须像手动包装它一样voiddoSomething(listlistOfB,listlistOfC){listl1;listl2;for(B*b:listOfB)l1.insert(b);for(C*c:listOfC)l2.insert(c);doSomething(l1,l2);//callingthefunctiontakingsupertype}我尝试

c++ - initializer_list 作为数组引用参数的参数?

下面对foo的调用是否有效?GCC似乎对此很满意,而Clang为foo给出了“无匹配函数”错误;以及无法推断出N的注释。templatevoidfoo(constint(&x)[N]){}intmain(intargc,char*argv[]){foo({1,2,3});return0;} 最佳答案 编辑:随着CWGissue1591决议的通过在委员会2014年11月的session上,现在允许使用OP中的代码。编译器现在可以推断出数组中元素的类型和数量。§14.8.2.5[temp.deduct.type]/p5:Thenon-d

c++ - 我可以将 `extern template` 放入头文件中吗?

在头文件中放一个外部模板,然后在单元编译文件中显式模板实例化有效吗?例如在g++的编译示例中,这是为了避免nothing的实例化吗?两次?为什么没有人这样写而更喜欢复制externtemplate每个.cpp文件中的行?A.hpp:#ifndefHEADERC_A#defineHEADERC_Atemplatestructnothing{};externtemplatestructnothing;#endifA.cpp:#include"A.hpp"templatestructnothing;ma​​in.cpp:#include"A.hpp"#includeintmain(){not

c++ - std::list 的多元素插入是强异常安全的吗?

在exceptionalc++的第17项中,我发现:First,forallcontainers,multi-elementinserts("iteratorrange"inserts)areneverstronglyexception-safe.但在effectiveSTL的第1项中,我发现:Ifyouneedtransactionalsemanticsformultiple-elementinsertions(e.g.,therangeform—seeItem5),you'llwanttochooselist,becauselististheonlystandardcontaine

c++ - 可变参数模板 initilizer_list 技巧

我在visualstudio2017RC上使用C++17编写了for_each_tuple,我对这种实现感到震惊。查看:templateconstexprautofor_each_tuple(fun_t&fun,tuple_t&&tuple){std::apply([&](auto&&...args){autol={(fun(std::forward(args)),0)...};},std::forward(tuple));}intmain(){autotup=std::make_tuple(1,2,3,4);for_each_tuple([](auto&arg){++arg;},tu

c++ - 为什么 vector<double> 接受带有整数元素的 initializer_list?

#include#includeintmain(){//caseI:uniforminitialization//intii=100;//Error:cannotbenarrowedfromtype'int'to'double'//ininitializerlist//doubledd{ii};//caseII:initializer_list//std::vectorvecDouble{1,2.2};//fine!//caseIII:initializer_list//std::vectorvi={1,2.3};//error:doubletointnarrowing//caseIV

c++ - 如何与 "template using"定义的模板(别名)类成为 friend ?

类B想和每个人成为friendC.我正在努力寻找解决方法。只要我不添加有问题的行,下面是成功编译的完整代码。#includeusingnamespacestd;enumEN{EN1,EN2};templateclassC{public:C(){std::coutclassB{templateusingCT=C;//templatefriendclassCT;//ct;}};intmain(){B::test();return0;}这是我尝试过的(全部失败):-templatefriendclassC;templatefriendclassCT;templatefriendclassCT

c++ - C++ 模板的部分特化 : template parameter not deducible

下面的代码工作正常:templateclassFib{};templateclassFib{};但是下面的代码显示错误为:Error:templateparametersnotdeducibleinpartialspecialization:templateclassFib{};templateclassFib{};你能解释一下这种行为的原因吗? 最佳答案 我相信您只是缺少部分特化的正确语法:templateclassFib{};templateclassFib{};模板上的第一个参数是类型,而第二个只是一个常量值。

c++ - template<class = enable_if_t<...>> 做什么?

我一直在阅读STL文件,以学习格式化代码的更好方法,并学习提高效率的技巧。我一直在阅读线程文件,但我无法弄清楚某些代码的作用。template,thread>::value>>explicitthread(_Fn&&_Fx,_Args&&..._Ax){//constructwith_Fx(_Ax...)...}std::enable_if_t是templateusingenable_if_t=typenameenable_if::type;templatestructenable_if{//typeis_Tyfor_Testusingtype=_Ty;};该代码在thread和str