草庐IT

c++ - 对不带参数的可变参数模板函数的调用不明确?

运行时:templatestructCodeByType{staticconstint32_tValue=7;};templatestructCodeByType{staticconstint32_tValue=1;};templateint32_tSum(){//ThecompilercomplainsonthislinereturnSum()+Sum();}templateint32_tSum(){returnCodeByType::Value;}intmain(){autosum=Sum();}我得到:ErrorC2668'Sum':ambiguouscalltooverload

c++ - 传递给模板函数的两个 lambda 使参数的类型推导不明确——为什么?

如果我将一个lambda传递给它,我有一个模板可以工作,但是在一个将两个lambda映射到相同模板化类型的相关模板中,它无法推断出该类型,并且MSVC++Express2013提示模板参数不明确。首先要明确的是,这里没有进行重载(或特化)——我下面的两个示例是唯一具有这些标识符的实体。以下是模板,它们简单地将可调用对象应用于参数并返回结果:templateautoWhichOp1(Aargument,OPfirstOp)->decltype(firstOp(argument)){returnfirstOp(argument);}templateautoWhichOp2(Aargumen

c++ - 对 ' ' 的引用不明确

很抱歉,我不知道为什么这个算法不起作用。编译时的错误是:“Referenceto'function'isambiguous”并且在y=function()行,我调用函数的地方#include#include#include#include#definePI3.141floatfunction(intg,intm,ints,floatz){usingnamespacestd;z=(g+m/60.0+s/3600.0)*PI/180.0;returnz;}intmain(){usingnamespacestd;floaty;intg,m,s;cout>g;cout>m;cout>s;y=f

c++ - fstream ifstream 我不明白如何将数据文件加载到我的程序中

我的教授非常聪明,但希望像我这样的完全菜鸟只知道如何编程c++.我不明白fstream函数是如何工作的。我将有一个包含三列数据的数据文件。我将不得不用对数来确定每行数据代表的是圆形、矩形还是三角形——这部分很容易。我不明白的部分是fstream函数是如何工作的。我想我:#include那我应该声明我的文件对象吗?ifstreamHoles;然后我打开它:ifstream.openHoles;//?我不知道正确的语法是什么,也找不到简单的教程。一切似乎都比我的技能可以处理的更高级。此外,在我读入数据文件后,将数据放入数组的正确语法是什么?我会声明一个数组吗?T[N]和cin将fstrea

c++ - 使用函数重载的可变模板参数时模板模式匹配不明确

这应该是可变参数模板的常见情况,例如当树行走子项是可变参数模板时。我找到了许多相关的问题和答案,但它们要么是关于稍微不同的事情,要么是同一件事,但我没有明白。现在问题来了。我有一个像这样的非可变元组templatestructX;我正在重载函数以具有特定的行为,具体取决于此类元组的第一个元素是指针类型还是vector指针类型。这很好用,但如果我将模板参数打包到一个可变参数模板参数中,那么重载就会变得不明确。这是错误消息:variadic.cpp:42:17:error:ambiguousoverloadfor‘operator编译器应该更喜欢X*,T*...>在X当它试图匹配vecto

c++ - 不明确的类继承

#include#includeusingnamespacestd;classTcirculo{floatradio;floatdiametro;floatarea;public:voidcarea(floatr){radio=r;area=(M_PI*((r*r)));}floatcdiam(floatr){diametro=2*r;returndiametro;}floatgetr(){returnradio;}floatgetd(){returndiametro;}floatgeta(){returnarea;}};classTrectangulo:publicTcirculo{

c++ - 为什么在这种情况下重载决议不明确?

我编写这段代码是为了检查类类型是否有begin功能。structfoo//asimpletypetocheck{intbegin(){return0;}};structFallback{intbegin(){return0;}};templatestructHasfuncBegin:T,Fallback{typedefcharone;typedefinttwo;templatestaticonecheck(int(X::*)()=&HasfuncBegin::begin);templatestatictwocheck(...);enum:bool{yes=sizeof(check())

c++ - 我不明白这个 C++ 错误 - 错误 C2101 : '&' on constant

这段代码应该可以与GCC一起使用——我正试图让它与VisualStudio一起工作。我不知道代码是否真的有问题,或者我没有对端口做正确的事情。1>c:\somepath\aaa.h(52):errorC2101:'&'onconstant1>c:\somepath\aaa.h(52):whilecompilingclasstemplatememberfunction'constblahblah::Messagesomething::AClass::aMethod(void)const'1>with1>[1>Type=constlala::BClass&1>]1>c:\somepath\

我不明白的 C++ 错误 : syntax missing ';' before identifier

classDialogue{public:intid;inttrigger;Questiondescendants[5];//Maxquestionsperdialoguestringtext;};classQuestion{public:intid;intdescendant;intancestor;stringtext;};当我尝试构建它时,它说问题后代位出现以下错误?Error1errorC2146:syntaxerror:missing';'beforeidentifier'descendants'c:\users**\documents\visualstudio2012\pr

c++ - Bjarne 会犯错吗? (在解释模板时),还是我还是不明白?

伙计们,我正在做“C++编程语言第3版”中的练习。在第340页上有一个函数示例:template>//Hereisadefaultargument//ButasfarasI'mconcernedit'sillegaltohaveadefaultargumentin//afunctiontemplateintcompare(constString&str1,constString&str2){/*Somecode*/}所以我的问题是:是书有误还是我理解错了? 最佳答案 是的,这本书在这种情况下是错误的。在函数模板声明中使用默认模板参数