草庐IT

四元组

全部标签

c++ - 正在访问指针元组的元组和线程安全的互斥锁

给定std::tuple,usingTuple1=std::tuple>;usingTuple2=std::tuple>;std::tupletuple;还有函数,voidbaz(){autotup=std::get(tuple);std::lock_guardlk(*std::get(tup));//Dosomethingwithstd::get(tup)andstd::get(tup)}根据this关于SO访问std::tuple的问题本质上不是线程安全的,但是在示例代码的情况下呢?是否有可能发生未定义/奇怪的事情?这是假设FooN和BarN仅在锁定后才被访问。

c++ - 四元数旋转不起作用

我才刚刚开始使用四元数,但在使用四元数让简单的FPS相机正常工作时遇到了一些烦人的困难。基本上,每当我尝试移动鼠标时,我在屏幕上绘制的三角形就会变得疯狂,并且在屏幕上移动的速度比我看到的还要快。移动键(wsad)按预期工作,直到我移动鼠标,然后它变得一团糟。我认为问题出在轮换上,但过去几天我一直在努力解决这个问题,但无济于事。这是一段视频:QuaternionTestVideo要查看鼠标输入,请从头开始观看。要查看键盘输入(前进、后退等),请跳至0:51秒。仅供引用,以下是我使用的3个主要类:Quaternion.hCameraSceneNode.hCameraSceneNode.cp

c++ - 如何为类似元组的可变参数类创建完美的转发构造函数

我正在尝试创建类似于元组的东西,但我在编写构造函数时遇到了问题。代码如下:#includetemplatestructB{templateexplicitB(ArgTypes&&...args){static_assert(sizeof...(Ts)==sizeof...(ArgTypes),"Numberofargumentsdoesnotmatch.");}};structMyType{MyType()=delete;MyType(intx,constchar*y){}};intmain(){Ba{2,'c'};//worksBb{2,false,{4,"blub"},'c'};/

c++ - 对每个元组元素应用多态函数的结果类型

我正在尝试为元组编写转换函数,但是我发现的所有示例要么将函数应用于通过引用传递的元组元素,要么使用非一元函数。但是我想有类似的东西std::tuplet(3.f,2);//returnsstd::tuple:autor1=transform(t,[](autov){returnv>decltype(v)(2);});//returnsstd::tuple:autor2=transform(t,[](autov){returnv+decltype(v)(1);});我得到的关于这个的问题是:是否可以确定将一元函数应用于每个元组元素的结果类型? 最佳答案

c++ - 返回所选类型的元组的类型函数

我已经实现了一个类型函数Tuple,它将My_enum值列表转换为相应类型的std::tuple:#includeenumMy_enum{t_int,t_double};//Bind_typeisatypefunctionthatgivenaMy_enumreturnsthecorrespondingtypetemplatestructBind_type;templatestructBind_type{usingtype=int;};templatestructBind_type{usingtype=double;};//Tupleisatypefunctionthatgivenate

元组申请表的代表

我试图了解元组应用程序。当我查看有关元组的前奏的信息时,它说:instance(Monoida,Monoidb)=>Monoid(a,b)instanceMonoida=>Applicative((,)a)有什么((,)a)意思是?它看起来不像元组。我有以下示例:PreludeData.Monoid>((Sum2),(+2))((Sum45),8)(Sum{getSum=47},10)元组中的第一个参数是monoid的实例,第二个只是一个函数应用程序。但是签名如何((,)a)匹配上面的示例?看答案我更喜欢将实例写为元组部分(这实际上不是合法的Haskell,但要指出:instanceMonoi

c++ - 您自己的类型的结构化绑定(bind)不是结构或元组(通过公共(public)成员函数)

我正在浏览HerbSutter的旅程:走向更强大、更简单的C++编程StructureBinding节为了理解这个概念。最好是写一个我试过但出现一些错误的程序Justwanttotryhowtousestructurebindingonclasswithprivatedata.Pleaseignorethebelowexample.ifanyexampleyoucanprovide#include#includeusingnamespacestd;classfoobar{public:foobar(){coutstructtuple_element{usingtype=int;};te

c++ - 从元组生成元组

假设您有一个元组,并希望通过对第一个元组的每种类型应用元函数来生成一个新元组。完成这项任务最有效的C++元函数是什么?是否也可以使用C++0x可变参数模板来提供更好的实现? 最佳答案 这个怎么样:templatestructmod;//usingameta-functionclasstemplateclassTuple,typename...Types>structmod>{typedefTuple::type...>type;};然后typedefstd::tupletuple_foo;structadd_pointer{temp

c++ - 使用 swig typemap 将 vector<pair<int,int>> & 从 c++ 方法返回到元组的 python 列表

我在尝试使用%typemap(out)包装一个将对vector对的常量引用返回到Python元组列表的C++方法时遇到了很多麻烦。我目前有这样的东西:我的类.h:#inlcudeusingstd::vector;classMyClass{private:constvector>&_myvector;public:MyClass(constvector>&myvector);constvector>&GetMyVector()const;}我的类.cpp:#include"myclass.h"MyClass::MyClass(constvector>&myvector):_myvecto

c++ - 测试类型 V 是否属于不带可变参数的元组 <...> 的类型

一个典型的实现是这样的:templatestructIs_in_tuple;templatestructIs_in_tuple>{staticconstboolvalue=Is_in_tuple>::value;};templatestructIs_in_tuple>{staticconstboolvalue=true;};templatestructIs_in_tuple>{staticconstboolvalue=false;};问题出现在VS2012中,元组存在,但可变参数模板不存在!是否有解决方法,无需可变参数模板即可执行此类测试的方法? 最佳答案