草庐IT

pseudo-typedef

全部标签

c++ - typedef 一个模板类而不指定模板参数

我正在尝试键入unordered_map或std::map,具体取决于是否有可用的TR1库。但我不想指定模板参数。从我到目前为止所读到的,在官方c++0x标准可用之前,没有参数的typedef'ing模板是不可能的。那么有人知道一个优雅的解决方法吗?#ifdef_TR1#includetypedefstd::tr1::unordered_mapMyMap;//errorC2976:toofewtemplatearguments#else#includetypedefstd::mapMyMap;//errorC2976:toofewtemplatearguments#endif

c++ - typedef 一个模板类而不指定模板参数

我正在尝试键入unordered_map或std::map,具体取决于是否有可用的TR1库。但我不想指定模板参数。从我到目前为止所读到的,在官方c++0x标准可用之前,没有参数的typedef'ing模板是不可能的。那么有人知道一个优雅的解决方法吗?#ifdef_TR1#includetypedefstd::tr1::unordered_mapMyMap;//errorC2976:toofewtemplatearguments#else#includetypedefstd::mapMyMap;//errorC2976:toofewtemplatearguments#endif

c++ - 强类型 using 和 typedef

在我们的项目中,我们使用了很多“使用”来明确说明变量应该代表什么。它主要用于std::string标识符,如PortalId或CakeId。现在我们目前能做的是usingPortalId=std::string;usingCakeId=std::string;PortalIdportal_id("2");CakeIdcake_id("isalie");portal_id=cake_id;//OK我们不喜欢。我们希望在编译时进行类型检查,以防止我们混合使用苹果和橙子,同时保留原始对象的大部分yumyum方法。所以问题是-这是否可以在C++中完成,这样使用将接近以下内容,分配会失败,我们仍

c++ - 强类型 using 和 typedef

在我们的项目中,我们使用了很多“使用”来明确说明变量应该代表什么。它主要用于std::string标识符,如PortalId或CakeId。现在我们目前能做的是usingPortalId=std::string;usingCakeId=std::string;PortalIdportal_id("2");CakeIdcake_id("isalie");portal_id=cake_id;//OK我们不喜欢。我们希望在编译时进行类型检查,以防止我们混合使用苹果和橙子,同时保留原始对象的大部分yumyum方法。所以问题是-这是否可以在C++中完成,这样使用将接近以下内容,分配会失败,我们仍

c++ - 请解释 "typedef"的语法规则和范围

规则是什么?OTOH简单的案例似乎暗示新类型是一行的最后一件事。像这里Uchar是新类型:typedefunsignedcharUchar;但是函数指针完全不同。这里的新类型是pFunc:typedefint(*pFunc)(int);我想不出任何其他的例子,但我遇到了一些非常令人困惑的用法。那么是否有规则,或者人们只是应该从经验中知道这是如何完成的,因为他们以前见过这样做?另外:typedef的范围是什么? 最佳答案 基本上,typedef与对象声明的语法完全相同,只是它以typedef为前缀。这样做会改变声明的含义,以便新标识符

c++ - 请解释 "typedef"的语法规则和范围

规则是什么?OTOH简单的案例似乎暗示新类型是一行的最后一件事。像这里Uchar是新类型:typedefunsignedcharUchar;但是函数指针完全不同。这里的新类型是pFunc:typedefint(*pFunc)(int);我想不出任何其他的例子,但我遇到了一些非常令人困惑的用法。那么是否有规则,或者人们只是应该从经验中知道这是如何完成的,因为他们以前见过这样做?另外:typedef的范围是什么? 最佳答案 基本上,typedef与对象声明的语法完全相同,只是它以typedef为前缀。这样做会改变声明的含义,以便新标识符

c++ - "typedef void (*Something)()"是什么意思

我试图理解这意味着什么,我正在查看的代码有在.htypedefvoid(*MCB)();staticMCBm_process;在.C中MCBModes::m_process=NULL;有时当我这样做时m_process();我得到段错误,可能是因为内存被释放了,当它被释放时我该如何调试? 最佳答案 它定义了一个指向函数的类型。函数返回void,参数列表未指定,因为问题(当前,但可能错误地)标记为C;如果它被标记为C++,那么该函数将根本不接受任何参数。要使其成为不带参数的函数(在C中),您可以使用:typedefvoid(*MCB)

c++ - "typedef void (*Something)()"是什么意思

我试图理解这意味着什么,我正在查看的代码有在.htypedefvoid(*MCB)();staticMCBm_process;在.C中MCBModes::m_process=NULL;有时当我这样做时m_process();我得到段错误,可能是因为内存被释放了,当它被释放时我该如何调试? 最佳答案 它定义了一个指向函数的类型。函数返回void,参数列表未指定,因为问题(当前,但可能错误地)标记为C;如果它被标记为C++,那么该函数将根本不接受任何参数。要使其成为不带参数的函数(在C中),您可以使用:typedefvoid(*MCB)

C++:我应该使用 'typedef' 还是 'using namespace' ?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我正在编写一个包含多个依赖模块的库。当我包含来自不同模块的文件时,我应该使用以下方式解析命名空间:usingnamespaceproject1::namespace1;class1obj;或typedefproject1::namespace1::class1class1;class1obj;每种方法的优缺点是什么?我在某处读到我们应该在.H文件中使

C++:我应该使用 'typedef' 还是 'using namespace' ?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我正在编写一个包含多个依赖模块的库。当我包含来自不同模块的文件时,我应该使用以下方式解析命名空间:usingnamespaceproject1::namespace1;class1obj;或typedefproject1::namespace1::class1class1;class1obj;每种方法的优缺点是什么?我在某处读到我们应该在.H文件中使