草庐IT

数字类型的 C++ 模板

我想要一个模板来选择数字类型,但我也想要一个全局类型模板。我尝试将解决方案应用于this问题,但没有用:templatevoidmyFct(Targ1,Types...rest){/*dostuff*/}template::value,T>::type,typename...Types>voidmyFct(Targ1,Types...rest){/*dostuff*/}因为现在我有两个具有相同header的函数。执行以下操作的正确方法是什么:templatevoidmyFct(Targ1,Types...rest){if(isNumeric(T))doNumericStuff();el

c++ - 如何展开模板特化

我正在尝试使用模板元编程获取参数包中指定索引处的类型。我有下面的代码,但由于某种原因它总是返回一个int,有人能告诉我我做错了什么吗?#include#includeusingstd::cout;usingstd::endl;usingstd::string;templatestructTypeForIndex{};templatestructTypeForIndex:privateTypeForIndex{usingtype=Head;};templatestructTypeForIndex{usingtype=Tail;};intmain(){TypeForIndex::typea

c++ - 编译时如何输出c++类型信息

大家。我正在调试一个严重模板化类的类型不匹配问题。我想在编译过程中了解c++类型信息,所以我这样写:#pragmamessagetypeinfo(var)它就是行不通。所以我在这里寻求帮助。我不确定是否可能。但我认为编译器在编译时必须知道类型信息。 最佳答案 预处理器本身不会在编译时帮助你。它的工作是预处理,发生在编译时间之前。如果想法是在编译时输出类型信息,那么试试下面的方法templatestructWhichType;classSomething{};intmain(){WhichType{};}Liveexamplehere

时间:2018-03-08 标签:c++opengl: how can i combine 2 different projection types for 3d graphics and 2d menus?

我想对菜单使用倾斜投影,对3d场景使用透视投影。有没有办法结合这两个预测?一般来说,我问的是如何在opengl中为我的3d场景创建菜单。使用c++语言编程。谢谢! 最佳答案 没问题。只需使用适当的方法绘制3D场景加载模型View和投影矩阵。然后加载向上二维矩阵,关闭深度测试,然后渲染你的菜单。下面是它的外观示例。glEnable(GL_DEPTH_TEST)glMatrixMode(GL_MODELVIEW);--codetoloadmyPerspectiveModelviewMatrixglMatrixMode(GL_PROJEC

C++ 从 LPCTSTR 转换为 const char *

我在MSVC2008MFC中遇到了这个问题。我正在使用unicode。我有一个函数原型(prototype):MyFunction(constchar*)我称它为:MyfunFunction(LPCTSTRwChar).error:CannotConvertParameter1From'LPCTSTR'to'constchar*'如何解决? 最佳答案 由于您使用的是MFC,您可以轻松地让CString自动将char转换为TCHAR:MyFunction(CString(wChar));无论您的原始字符串是基于char还是基于wcha

c++ - Float32 和 UInt32?

我正在查看一些旧的C++Apple代码,我熟悉float但不熟悉Float32和Uint32类型,它们与标准float和int相同吗?谢谢 最佳答案 UInt32是一个32位(4字节)无符号整数。这意味着它可以表示范围内的值[0,2^32-1](=[0,4294967295])。Float32是一个32位的(又名single-precision[对比double-precision])floatingpointnumber.正如其他答案所提到的,类型的存在是为了保证宽度。 关于c++-F

c++ - 私有(private)静态声明和后续初始化

一个.cpp文件有一堆类定义。一个类有一个私有(private)静态成员,如下所示:classSomeClass:publicSomeParentClass{private:staticintcount;};并且在类定义之后,计数属性初始化为零,如下所示:intSomeClass::count=0;来自Java/C#世界,我无法理解count在哪一点初始化为零?是在SomeClass被实例化的时候吗?此外,类定义的count类型为int,为什么SomeClass::count必须有一个int前面呢?我的最后一个问题是,既然count属性是私有(private)的,当它在类定义之外初始化

c++ - 当您在 C 中定义一个值时,编译器如何选择数据类型

只是一个关于编程的一般问题:当您用C(或我想的任何语言)定义一个值时,编译器如何知道如何处理该值?例如:#defineCountCycle100000我假设CountCycle是一个“长整数”数据类型,但这只是一个假设。我想它也可以是float、double(不是int,因为它最大为~32k)等。编译器如何为#define值选择数据类型?我没有申请回答这个问题;我只是好奇。 最佳答案 编译器不会做这样的事情。预处理器用100000代替CountCycle。一旦替换完成,编译器就可以接管了。如果100000适合该范围,则其类型为int

c++ - 如何在不创建实例的情况下获取类的方法成员的类型?

假设我们有:templatevoidfoo(std::vector&t){autovar=T();std::vectorarray;}在上面的代码中,创建了一个数组。该数组的类型是Get()的返回值。我们通过创建类型T的虚拟变量然后使用decltype推断Get的返回类型来找到该值。这可行,但是它需要创建一个无用的虚拟变量。相反,我们可以这样做:templatevoidfoo(std::vector&t){autovar=t[0];std::vectorarray;}这不会创建任何虚拟对象,但是这可能会崩溃,因为我们不能保证数组至少包含一个元素。有没有一种方法可以在不创建虚拟对象的情况

C++类型转换

我在哪里可以找到类型转换的概述,例如字符串到整数等?鉴于到目前为止的评论,我将澄清:我正在寻找一个列表/表格,上面写着:要将字符串转换为int,请使用:...对于其他数据类型(如果可能)也是如此:double转换为int,char转换为string,... 最佳答案 如果它是其他类型的字符串,那么stringstream或boost::lexical_cast.对于其他类型,这将取决于类型,但也许可以查看标准转换模板?static_cast和dynamic_cast应该做你需要的大部分事情,或者有const_cast和reinter