草庐IT

typedeffing

全部标签

c++ - 强枚举 typedef : clang bug or c++11 standard uncertainty?

对于这样的代码:typedefenumFooEnum:intFooEnum;enumFooEnum:int{A=1,B};clang(linux/7.0.0)报告没有错误[-c-std=c++11-pedantic],但是gcc(linux/8.2.1)不编译它:g++-c-std=c++11-pedantictest2.cpptest2.cpp:1:28:error:expected';'or'{'before'FooEnum'typedefenumFooEnum:intFooEnum;^~~~~~~test2.cpp:1:28:error:expectedclass-keybefo

c++ - 无法与 typedef 成为 friend : any particular reason?

structA{};typedefAB;structC{friendstructB;};GCC4.7.020110427告诉我error:usingtypedef-name'B'after'struct'.到目前为止,这似乎是不言自明的;毕竟,我的示例代码试图声明并加好友struct称为B,实际上不是struct-key.但是,我必须写friendstructA;如果A实际上是一个复杂的、冗长的模板元黑客,这是不可取的。我是不是遗漏了什么,或者我们实际上可以不friend通过类型别名类型?如果不是,是否有任何特殊原因或者只是语言的怪癖?Thisquestion之前提出过这个问题,但是已

c++ - 重载运算符<<(unsigned char typedef as byte)

我想重载(劫持?)ostream和basic_ostream以便它停止尝试将八位字节(无符号字符)显示为可打印字符。我一直住在cout和friend们在屏幕上放笑脸的时间太长了。我厌倦了与Actor一起工作:hex.是否可以覆盖标准行为?我已经尝试过模板和非模板覆盖。它们编译,但似乎没有被调用。 最佳答案 问题是已经有一个templatestd::basic_ostream&operator&,charT);在namespacestd.自basic_ostream也在这个命名空间中,ADL在你输出unsignedchar时选择它.添

c++ - 具有 typedef 返回值的模板化成员函数

为什么下面的代码给我一个错误(g++4.1.2)?templateclassFoo{public:typedefstd::vectorAVec;AVec*foo();};templateFoo::AVec*Foo::foo(){//erroronthislinereturnNULL;}错误是:error:expectedconstructor,destructor,ortypeconversionbefore'*'token我应该如何定义Foo::foo()以其他方式运行(具有正确的返回类型)? 最佳答案 这是一个名为“two-st

c++ - 继承而不是 typedef

C++无法从typedef或typedef模板化类中创建模板。我知道如果我继承并使我的类成为模板,它就会起作用。例子://IllegaltemplatetypedefMyVectorTypevector;//Valid,butadvantageous?templateclassMyVectorType:publicvector{};这样做有利于我“伪造”typedef还是有更好的方法来做到这一点? 最佳答案 C++0x将使用using添加模板类型定义关键字。您的解决方案声明了一个新类型,而不是类型“别名”,例如你不能初始化MyVec

c++ - 如何 typedef 具有未指定大小的 std::array?

我想写一些变量,比如std::arraya;哪里array_num是constint表示数组的长度。但是它很长,我想为它创建一个别名:typedefstd::arraymy_array;是吗?如何使用my_array喜欢my_array? 最佳答案 您需要的是aliastemplate:templateusingmy_array=std::array;您不能直接制作typedef模板,参见thispost.size_t是std::array采用的第二个模板参数的类型,而不是int。既然您了解了使用,您应该会使用它。它可以做typed

这意味着Typedef char *b?

我正在阅读此内存管理代码超载操作员新的。有类似的表达typedefchar*b后来在代码B中使用了这样的使用:b(h);//hisapointertosomeclass;H在这里定义:staticHead*h=(Head*)HEAP_BASE_ADDRESS;我假设当使用B时,它被认为是指向字符的指针。但是,指针如何具有B()之类的表达式?这里有某种转换吗?我可以理解它,因为B现在的地址与H相同吗?看答案您发布的第一个代码行是typedef为此创造了一个别名char*作为b。第二个代码行显示了功能风格类型转换从h至b.我可以理解它,因为B现在的地址与H相同吗?这b只是一个别名char*,所以b

objective-c - typedef 的重新定义是 C11 的一个特性

我正在尝试创建这样的头文件:#importtypedefvoid(^RevealBlock)();@interfaceBFTasksViewController:UITableViewController{@privateRevealBlock_revealBlock;}-(id)initWithTitle:(NSString*)titlewithRevealBlock:(RevealBlock)revealBlock;@end但是我收到这个警告:Redefinitionoftypedef'RevealBlock'isaC11feature这有什么值得担心的吗?我在看GHSidebar

C typedef 用法 详解(通俗易懂)

目录一、前言二、为什么需要typedef?三、typedef关键字的介绍和使用    1.简介    2.使用    3.示例        eg1:        eg2:         eg3: 四、总结一、前言    大家好,今天为大家带来的是typedef关键字的内容分享。本篇博文算是《C语言数据结构与算法》系列专栏的开篇之作。其实,up准备出的C语言描述的数据结构与算法也仅仅是为了将来java版本的数据结构与算法做做铺垫,毕竟up是主攻java的😂。当然,之后up大概率会出C语言描述的算法题的讲解,这下数据结构与算法也算派上用场了。    注意:①代码中的注释也很重要;②不要眼高手

c++ - 关于 Swift 中从 C 文件访问 "typedef void PaStream;"的正确语法的任何帮助?

我已经将一个名为portaudio(PortAudiowebsite)的dylibC库编译并导入到一个Xcode6.1Swift项目中,除了一个是typedefvoidPaStream;我无法理解如何在Swift中使用它,在C中我这样声明:PaStream*audioStream=NULL;当我收到一条警告说未声明的类型/未解析的标识符时,任何人都可以在Swift等效项上提供帮助,看起来Swift无法桥接typedefvoidxyz;?非常感谢您的帮助。 最佳答案 C类型定义typedefvoidPaStream;确实没有导入到Sw