草庐IT

enable_if_c

全部标签

c++ - 无法编译包含 "if constexpr"的函数模板实例化

抱歉标题含糊不清,但我想不出更好的标题。我写了一个函数来压扁容器:templatevoidflatten(constContainer&container,OutItres){ifconstexpr(std::is_convertible_v::value_type>){for(constauto&value:container){*res=value;++res;}}else{for(constauto&subContainer:container)flatten(subContainer,res);}}我希望它像这样使用:vector>test={{1},{2,3,4},{5,6}

c++ - enable_if 类型不属于某个模板类

TLDR:请参阅最后一段。我为几个模板类定义了一个operator&,如下所示:templatestructClass{Class(Tconst&t){}};templatestructClassAnd{ClassAnd(T_Lhsconst&lhs,T_Rhsconst&rhs){}};templateClassAnd,T_Rhs>operator&(Classconst&lhs,T_Rhsconst&rhs){returnClassAnd,T_Rhs>(lhs,rhs);}templateClassAnd,T_Rhs>operator&(ClassAndconst&lhs,T_Rh

c++ - STL std::remove_if 编译器失败

我无法让std::remove_if进行编译,如您所见,我选择了另一种工作正常的手摇曲柄方法,编译器错误位于列表底部的代码之后。任何帮助将不胜感激。谢谢,汤姆#include#include#include#include#include////Findthelargestcompoundwordcomposed//ofsub-wordsfromalist.////-readlistfromfile.////PsuedoCode:////1.ReadNextWordfromFile.//2.Searchinlistforwordformedfromword.//3.ifFoundinL

c++ - 模板类特化 enable_if 和默认值

鉴于以下templatestructtest{};template::value>::type>structtest{};假设some_trait::value是true,enable_if::type是void,然后选择专业。但是,当出现以下情况时,我的查询与选择有关。template::value,T>::type>structtest{};当enable_if的第二个非空模板参数时为::type提供,非特化模板被选中,即使some_trait::value是true,作为::type是T而不是void,所以没有匹配主模板中的默认值。我的问题是标准中的哪个位置描述了选择模板的顺序,

STL - 找到所有的 find_if 的替代版本,而不仅仅是第一个?

是否有std::find_if的替代版本返回所有找到的元素的迭代器,而不仅仅是第一个元素?例子:boolIsOdd(inti){return((i%2)==1);}std::vectorv;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);std::vector::iteratorit=find_if(v.begin(),v.end(),IsOdd);for(;it!=v.end();++it){std::cout 最佳答案 您可以只使用for循环:for(std

c++ - boost MPL : Call a (member) function only if it exists

我有一个类A,它有一个模板参数T。有些用例中类T提供函数func1(),有些用例中T不提供它。A中的函数f()应该调用func1(),前提是它存在。我认为这应该可以通过boostmpl实现,但我不知道如何实现。这里有一些伪代码:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();}};如果是else-case会更好:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();elsecout

c++ - 如何从 if 语句中获取类模板的实例? (C++)

假设我有一个类模板,它有一个成员pData,它是一个任意类型T的AxB数组。templateclassX{public:intA;intB;T**pData;X(inta,intb);~X();voidprint();//functionwhichprintspDatatoscreen};templateX::X(inta,intb){//constructorA=a;B=b;pData=newT*[A];for(inti=0;i>type;if(type=="int"){XXArray(a,b);}elseif(type=="char"){XXarray(a,b);}else{std

c++ - Visual Studio 在添加 if 语句后显示 C++ 歧义错误

我遇到了这个奇怪的代码问题。在visualstudio中,我所有的“cout”、“cin”和“system”都有红色波浪线,并被标记为不明确的代码。该项目仍然可以正常编译并且不会给我任何错误或警告,但这很烦人并且会阻止我知道我何时犯了实际错误。当我添加“if(argc>0)”部分时,这一切都开始了,如果我删除它,然后删除并重新键入“usingnamespacestd;”曲线消失了。遗憾的是,当我重新输入上面的“if”语句时,问题又来了。我真的很感激一些帮助。谢谢大家!#include#include#include"chkString.h"usingnamespacestd;intma

ios - BUTTON SHAPE on in device (iPhone) setting result app crash if its off app working

最近我将我的应用程序切换到iOS7兼容性并且应用程序工作正常但是如果我在设备设置(设置-->Accessblity-->按钮形状开关)中打开按钮形状选项(在iOS7.1中可用)然后应用程序崩溃并给出以下错误:--[NSAttributeDictionarytextContainerForAttributedString:containerSize:lineFragmentPadding:]:无法识别的选择器发送到实例0x17e4e310核心基础当按钮形状选项关闭时,应用程序工作正常。崩溃堆栈跟踪:--[NSAttributeDictionarytextContainerForAttri

iOS 8 CLLocationManager 输入区域 : not getting called if use requestWhenInUseAuthorization

我正在尝试在iOS8中为自定义区域调用委托(delegate)方法locationManager:didEnterRegion。这是代码:self.locationManager=[[CLLocationManageralloc]init];self.locationManager.delegate=self;if([self.locationManagerrespondsToSelector:@selector(requestWhenInUseAuthorization)]){[self.locationManagerrequestWhenInUseAuthorization];}C