typedef相关内容
假设我有下面的代码(一个简单的CRTP类层次结构)。我想要typedef基类类型来保存自己打字(在我的实际代码,我使用基类类型不止一次,基类接受几个模板参数),我需要支持基类,因为我想保持 模板 class Base { public: void foo(){* static_cast(this) - > foo_i(); } }; te
..
我有这样的: #include namespace N { typedef std :: pair MyPair; std :: ostream&运算符
..
我有一个理解一些C ++语法结合函数指针和函数声明的问题,即: 通常当我们声明一个类型的函数类似: typedef void(* functionPtr)(int); 这对我来说很好。从现在开始,functionPtr是一个类型,它代表 指向函数的指针,返回void并以一个值作为参数接受int。 它如下: typedef void(* funct
..
我要完成 命名空间NTL { typedef std :: valarray vector ; } 我知道这是不允许的,但我需要一个快速和简单的方法(不重新实现所有的函数,操作符,重载等)得到一个模板typedef。 现在做一个模板类Vector有一个valarray作为数据成员,但这将要求我重载所有的数学函数为我的矢量(再次...作为valarray也一
..
使用之间的区别是什么? typedef Some :: Nested :: Namespace :: TypeName TypeName; 或 using Some :: Nested :: Namespace :: TypeName; 以在本地提供缩写 TypeName 范围? 解决方案 它们有不同的起源和不同的用途。
..
我记得曾经看到一个网站,它解密了复杂的C ++ typedef,包括函数指针返回函数指针返回一个数组的函数... 可读英语文本:»指针到函数,返回一个int指针数组,取一个长和一个回调函数(以一个int)作为参数«。 (沿着那条线的东西) typedef int *(* f)(long,void(*) ; 任何人都记得这个工具/网站?非常感谢任何提示 解决方案
..
我试图通过使用前向声明和将#includes移动到实现文件中来简化一堆头文件“include spaghetti”。但是,我仍然会遇到以下情况: // Foo.h #include“Bar.h” class Foo { public: void someMethod(Bar :: someType_t& val); }; //Bar.h 。 。 。
..
如果是,为什么有些Win32头使用它? 例如: BOOL APIENTRY VerQueryValueA(const LPVOID pBlock, LPSTR lpSubBlock, LPVOID * lplpBuffer, PUINT puLen ); 更详细的说明:如果API从不使用引用(或任何其他C ++ - 只有指针和值,有什么点有 const L
..
我试图typedef unordered_map或std :: map,取决于是否有TR1库可用。但是我不想指定模板参数。从我到目前为止,typedef的模板没有参数是不可能的,直到官方的c ++ 0x标准可用。那么任何人都知道一个优雅的解决方法吗? #ifdef _TR1 #include typedef std :: tr1 :: unorder
..
我想创建一个名为 pos (从位置)的typedef结构,它存储坐标x和y。我试图重载这个结构的一些运算符,但它不编译。 typedef struct { int x ; int y; inline pos operator =(pos a){ x = a.x; y = a.y; return a; } inline pos operator +(pos
..
我在项目中广泛使用shared_ptr和STL,这导致过长,容易出错的类型,例如 shared_ptr > > (我是一个ObjC程序员,偏好,长名称是规范,仍然这是太多了。)我会相信,更清楚,一贯称为 FooListPtr 并记录“Ptr”意味着shared_ptr和“List”意味着vector_ptr的向量的命名约定。 到typed
..
我发现自己最近经常做的事是声明typedef与该类中的特定类相关,即 类Lorem { typedef boost :: shared_ptr ptr; typedef std :: vector向量; // // ... // }; 这些类型在代码中的其他位置使用: Lorem :: ve
..
我有一个命名空间中的枚举,我想使用它,如果它在一个不同的命名空间。直觉上,我想我可以使用“使用”或“typedef”来完成这一点,但两者都不工作。代码段以证明它,并在GCC和Sun CC上测试: 命名空间foo { enum bar { A }; } 命名空间buzz { //我使用的这两种方法中的哪一种都没关系, //结果是相同的。 using foo
..
这是我的问题: struct A { enum A_enum { E0, E1, E2 }; }; struct B { typedef A :: A_enum B_enum; bool test(B_enum val) { return(val == E1); // error:“E1”undeclared identifier } };
..
下面的代码行编译正好和行为: list int_pointers; //(1) 以下两行不适用: typedef int * IntPtr; list int_pointers; //(2) 我得到与 完全相同的编译错误 list int_pointers;
..
我正在试验扩展cocos2d-x CCMenuItem组件,并遇到了一些我以前没有在C ++中看到的东西。如果有人用他们的函数指针声明详细说明什么是有帮助的。 大多数cocos2d-x对象的基类是CCObject,它有以下定义 class CC_DLL CCObject:public CCCopying { public: //代码省略 }; //我有一个关于 的问题
..
我想为函数指针使用stl容器作为参数,并且此容器具有未知类型的typedef。类似这样: typedef void(* TouchCallBack)(GLRenderer *,const MotionEvent& std :: vector
..
我不想写 town->第一个,而是写下 town-> name 。内联命名访问器(重命名地图迭代器的第一个和第二个和命名std ::对成员)是我迄今为止找到的最好的解决方案。我的命名访问器的问题是类型安全的损失: pair 可以指 struct {int index;双值; } 或 struct {int population; double avg_temp; } 。
..
在C ++头文件中,我看到了这个代码: typedef typename _Mybase :: value_type value_type; 现在,根据我的理解,引用“作者:Schildt。 typename 可以用关键字类替换,第二次使用 typename 是通知编译器在模板声明是一个类型名称而不是对象名称。 同样,您可以使用关键字 typedef 定义新
..
我以前有什么 struct foo; //不完全类型。 typedef std :: vector all_foos; typedef all_foos :: reference foo_ref; 虽然不完全不确定上面的行是否合法,但这在我使用的每个实现。当我想到我可以用 std :: tr1 :: array 做这个工作,改变上面的两行与
..