草庐IT

c++ - 如何让 vim 对齐三元组? : operator nicely?

我喜欢像这样使用三元?:运算符编写代码:std::stringresult=input.empty()?createNewItem():processInput(input);如何配置vim,以便在键入createNewItem()后按Return缩进下一行,以便光标与最后一个位于同一列?这样我就可以继续输入:processInput(input);?我尝试查看cinoptions-values设置,但没有看到任何相关信息。 最佳答案 您至少可以部分地通过添加括号来实现这一点:std::stringresult=(input.emp

c++ - 具有元组类型子集相应参数的模板函数

我想编写这样的函数find:multi_setm;//vectoroftuplesm.insert(/*somedata*/);m.find("something",2.123);或者m.find(1,instanceOfMyType);m.find("somethingelse");其中find可以对应于元组参数的任何子集进行参数化。到目前为止我的代码:templateclassmulti_set{typedeftupleTuple;vector>data=vector>();public:voidinsert(T...t){data.push_back(tuple(t...));}

c++ - 元组的 std::transform 等价物

我想要一个行为类似于std::transform的函数对于元组。基本上要实现的功能是templatevoidtuple_transform(Tuple&&source,Tuple&&target,Funcf){//elementsof`target`tibecome`f(si)`,where//siisthecorrespondingelementof`source`};我相信要实现这一点,我需要一个编译时整数范围结构,它是std::index_sequence的概括。我已经实现了它here与cti::range.我也相信this编译时间遍历的类型在这里是理想的:templatevoi

c++ - 从元组中解包参数

所以我想弄清楚这是如何工作的:C++11:Icangofrommultipleargstotuple,butcanIgofromtupletomultipleargs?我不明白的黑魔法是这段代码:f(std::get(std::forward(t))...)就是f里面的表达式我不明白。我知道表达式以某种方式解压/扩展了里面的内容t进入参数列表。但是有人可以解释一下这是如何完成的吗?当我查看std::get的定义时(http://en.cppreference.com/w/cpp/utility/tuple/get),我不明白N适合...?据我所知,N是一个整数序列。根据我观察到的情况,

c++ - 如何创建类型列表以扩展为元组?

我正在尝试创建一个类,其中包含传递给它的所有类型的元组。我希望它采用类型列表作为模板参数,并将该列表中的类用作内部元组将包含的类。目前,我有这样的东西,实际上并没有编译。templatestructComponentList{};template>classComponentManager{std::tuplecomponents;};我想让ComponentList成为它自己的类型的原因是因为我还想稍后传入其他类型列表。这可能吗?如果没有,什么是可行的替代方案? 最佳答案 您可以添加一个模板,将类型级列表中的参数重新绑定(bind

c++ - 计算数组中共线的三元组数

我被问到这个面试问题(C++,算法)并且不知道如何解决。给定一个数组Arr[N],其中包含N个不同点的笛卡尔坐标,计算三元组(Arr[P]、Arr[Q]、Arr[R])的数量,使得P有什么想法吗?我可以为此使用什么算法? 最佳答案 以下可能没有优化,但它的复杂性是您的面试官所要求的。首先为每对点创建一个(a,b,c)值列表(N²复杂度)-->(a,b,c)代表直线a*x+b*y+c=0的笛卡尔方程给定两个点及其坐标(xa,ya)和(xb,yb),计算(a,b,c)很简单。要么你可以找到解决方案ya=alpha*xa+betayb=a

c++ - 哪种类型特征表明该类型是 memcpy 可分配的? (元组,对)

我想知道我可以做什么类型自省(introspection)来检测可通过简单的原始内存复制分配的类型?例如,据我所知,内置类型的元组和此类元组的元组属于此类。动机是我想尽可能传输原始字节。Tt1(...);//notnecessarelydefaultconstructibleTt2(...);t1=t2;//shouldbeequivalenttostd::memcpy(&t1,&t2,sizeof(T));//t1isnowan(independent)copyofthevalueoft2,forexampleeachcangooutofscopeindependently如果赋值可

c++ - 如何从参数包中定义值类型的元组

我需要构建一个n类型的元组。这n个类型是n个其他类型的值类型。考虑这个片段:#includenamespacehana=boost::hana;templateclassCartesianProduct{public:CartesianProduct(Types...args):sets(args...){}hana::tuplesets;hana::tuplecombination;//doesnotworkobviously...butwocanthisbedone?};这个应用的目的是这样的:我向这个类传递一个可能不同类型的容器的参数包。该类将这些容器放入一个元组sets中。该类

c++ - 如何在编译时替换元组元素?

有没有办法在编译时替换元组元素?例如,usinga_t=std::tuple;//startwithsomen-tupleusingb_t=element_replace;//std::tupleusingc_t=element_replace;//std::tuple 最佳答案 你可以使用这个://theusualhelpers(BTW:Iwishthesewouldbestandardized!!)templatestructindices{typedefindicesnext;};templatestructmake_indi

c++ - 无法创建其中包含空元组的一元元组 (c++0x)

我在试验元组时遇到了创建元组的问题。代码示例如下。//a.cpp#includeusingnamespacestd;intmain(){autote=make_tuple();//thislineisokautotte=make_tuple(te);//thislinegivesanerror.return0;}我用g++4.5(g++-std=c++0xa.cpp)和MSVC++2010编译了它。两个编译器都在main()的第二行给我一个错误。我的问题是:由于“te”是一个定义明确的变量,为什么不能创建另一个以te为内容的元组。这个语义正确吗?我想这是一种边界情况,但如果算术正确,应