typedef相关内容
在下面的代码中考虑一个类似于 A 的别名模板。现在让 B 为 A 的别名模板。 在下面的代码中,这些类模板用作结构 C 的模板参数,该结构仅专用于一种类型名称( A )。 clang -std = c ++ 11 存在,错误为:未定义模板'C'的隐式实例化指示 template 使用A = int; template 使用B = A
..
在我的项目中,我想实现一些现有的更大类的模板代理类。现有的类是库类,因此无法修改。在大多数情况下,客户端不知道对象是代理类还是更大类的实例。但是,在某些情况下,客户必须知道详细的班级信息。由于代理类本身是模板类,因此我认为按类名重载简单函数不会解决此问题。我认为可能的解决方案是在代理类内部添加一个内部嵌套类或typedef,然后客户端检查是否存在该类/ typedef以获取类信息。我的问题是:如何
..
我在Py ++生成的C ++程序中有一个奇怪的typedef语句。 double radius(int); //要包装的函数 typedef double(* radius_function_type)(int); bp :: def(“ radius”,radius_function_type(& radius)); // bp :: def是用于包装 的函数typ
..
我创建了一个CPU调度程序,它将具有不同编译选项的相同功能编译为不同的目标文件。为了使我的代码能够访问不同目标文件中的相同函数,我需要为每个目标文件中的函数赋予不同的名称。 在C(或C ++)中,我会在头文件中为函数的声明做类似的事情。 typedef float MyFuncType(float a); MyFuncType myfunc_SSE2,myfunc_SSE41
..
最近,我发现代码中的 typedef 的工作原理与我提出的完全不同。像这样的示例: typedef int * ptype; ptype v1 = 0,v2 = 0; 结果:v1和v2均被定义为指向 int 类型。但是,如果您在第二句中将 ptype 替换为 int * ,则为 int * v1 = 0,v2 = 0; 或 int * v1 = 0,v2 = 0; ,
..
该程序无法编译(使用gcc-4.5)。错误消息显示: 错误:“ myType_t”未命名类型 1 class abc { 2 // typedef int myType_t; 3 4公用: 5 typedef int myType_t; 6 7 abc(); 8 myType_t fun1(); 9}; 10 11 myType_t abc ::
..
我需要一些帮助来了解发生此错误的位置: 警告:非静态数据成员的类内初始化是C ++ 11扩展[-Wc ++ 11-extensions] 这是它来自的代码部分: typedef struct Hand { bool径=假; bool flush = false; bool四=假; 布尔三=假; int对= 0; }手; 解决方案 这不是错误,是
..
很明显,类型别名和模板化类型别名在语义上等效于typedef和typedef的扩展以支持模板。如何为这些关键字创建使用 using 关键字的新语法,而不是使用typedef作为第一个语法扩展名以及使用单词 typedef 。 注意:这不是“使用和typedef之间的差异”问题的副本。我知道使用的好处是可以定义一个 typedef s系列。我要问的是,为什么标准人决定让此扩展名使用 using
..
我不确定我的措词是否正确,因为这有点奇怪。 基本上,我发现了一些类似这样的代码: template struct X {typedef T Type; }; template 结构X {typedef T Type []; } 我正在更改 typedef s使用类型别名语法使用C ++ 1
..
编辑:问题在此处进行了更深入的解释(谢谢! @Eric Postpischil).这似乎是GCC中的错误. 首先,让我从一些上下文开始:我正在编写的代码使用的是我无法更改的API,在我无法更改的GCC版本上,带有不允许删除的编译标志,以及当我完成后,它必须正好为零警告或#pragmas. 编辑:也没有工会. EDIT2:假定构建系统在阳光下还使用-Wall -ansi -peda
..
以下块在 main() 之外,并且在每个函数(全局作用域)之前 第一段: struct flight{ int number; int capacity; int passengers; }; 与编写}var相比,您可以创建数组,指针,变量; (仅定义此自定义数据类型的一个变量(结构 flight )) 第二个区块: typedef struct flight{ int
..
可以像这样创建函数指针数组: typedef void(*FunctionPointer)(); FunctionPointer functionPointers[] = {/* Stuff here */}; 在不使用typedef的情况下创建函数指针数组的语法是什么? 解决方案 arr //arr arr [] //is an array (so index it)
..
从属类型通常需要typename来告诉编译器成员是类型,而不是函数或变量. 但是,并非总是如此. 例如,基类不需要此,因为它只能是类型: template struct identity { typedef T type; } template class Vector : identity >::type { }; // n
..
我对以下代码有疑问: template class lamePtr { public: typedef U* ptr; }; template class smarterPointer { public: void funFun() { typedef lamePtr someType
..
为什么这在C ++中不起作用? 为什么不能像这样将foo的参数限制为std::vector::iterator?最佳的解决方法是什么? #include template void foo(typename std::vector::iterator) { } int main() { std::vector v;
..
我想提供子类中基类对现有类型的访问. 我发现了两种不同的方式: struct A { typedef int mytype; }; struct B { typedef double mytype; }; 我可以使用using声明“包含"类型: struct C : A, B { using typename A::mytype; }; 或者
..
我正在尝试将Objective-C项目转换为Swift,这是Objective-C中的.h文件之一: typedef void(^PrintBlock)(HLPrinter *printer); @interface ShoppingViewController : UIViewController @property (copy, nonatomic) PrintBlock print
..
在这个问题中,我引出了一个特殊的解决方案,其中涉及对模板化别名声明的部分专门化.通用案例在此答案中进行了描述.假设我有一个模板类 template class X { // .... }; 我不是在让T腾空并专门化其他模板参数的情况下,而是在其他参数取决于T且仅取决于T的情况下.作为一个非常具体的示例(比另一个问题中的示例更易于管理),请考虑模板
..
这不是关于using和typedef在创建类型别名方面的区别的问题.我想提供从代码块或函数内部的命名空间访问现有类型的方法. 我发现了两种不同的方式: 我可以使用using声明“包含"类型: using typename mynamespace::mytype; 或者我可以创建一个类型别名: typedef mynamespace::mytype mytype; us
..
在我的应用程序中,我正在使用 Box2D 和 b2settings.h(Box2D):typedef unsigned int uint32; jsotypes.h(Spidermonkey):typedef unsigned long uint32; 是否有任何方法可以解决此冲突而无需更改第三方库的标头? 我很感谢每一个提示! 解决方案 您可以这样做: #defi
..