草庐IT

c++ - 通过更高级别的结构访问子变量

如果我有这些结构:typedefstruct{intx;}foo;typedefstruct{foof;}bar;通常你会通过b.f.x访问x,但是有没有办法设置它,这样你就可以访问元素x而无需引用f?barb;b.x=...我的第一个直觉是你不能,因为如果两个子结构都有一个成员x并且我无法弄清楚编译错误会是什么,那么可能会发生名称冲突。不过,我记得我曾在一些可行的框架中工作过。在C++中,我曾经在一个存在bar的框架中工作过,您可以从不同的类作为成员变量this->x访问它的成员。我正在尝试弄清楚如何做到这一点。 最佳答案 你可以

c++ - 基本 typedef 操作数语法

给定:typedeftype-declarationsynonym;我可以看到:typedeflongunsignedintsize_t;将size_t声明为longunsignedint的同义词,但是我(知道但)看不到确切的原因:typedefint(*F)(size_t,size_t);将F声明为pointertofunction(size_t,size_t)返回int的同义词typedef的两个操作数(type-declaration,synonym)在第一个例子中是longunsignedint和size_t。F的声明中typedef的两个参数是什么,或者可能有typedef的

c++ - 基本 typedef 操作数语法

给定:typedeftype-declarationsynonym;我可以看到:typedeflongunsignedintsize_t;将size_t声明为longunsignedint的同义词,但是我(知道但)看不到确切的原因:typedefint(*F)(size_t,size_t);将F声明为pointertofunction(size_t,size_t)返回int的同义词typedef的两个操作数(type-declaration,synonym)在第一个例子中是longunsignedint和size_t。F的声明中typedef的两个参数是什么,或者可能有typedef的

c++ - wchar_t 只是 unsigned short 的 typedef 吗?

例如,做:wchar_tx;翻译成:unsignedshortx; 最佳答案 简而言之:在C中可能在C++中没有。广泛。C将wchar_t定义为typedef,但在Unix中它通常为4个字节(因此通常不短),而在Windows2中则可能很短。在C++下,它是唯一的内置类型,如char或int,因此您可以合法地重载voidfoo(shortx)和voidfoo(wchar_tx) 关于c++-wchar_t只是unsignedshort的typedef吗?,我们在StackOverflow

c++ - wchar_t 只是 unsigned short 的 typedef 吗?

例如,做:wchar_tx;翻译成:unsignedshortx; 最佳答案 简而言之:在C中可能在C++中没有。广泛。C将wchar_t定义为typedef,但在Unix中它通常为4个字节(因此通常不短),而在Windows2中则可能很短。在C++下,它是唯一的内置类型,如char或int,因此您可以合法地重载voidfoo(shortx)和voidfoo(wchar_tx) 关于c++-wchar_t只是unsignedshort的typedef吗?,我们在StackOverflow

c++ - 'typedef' 是否在 C++ 类中自动继承?

我曾经相信'typedef'不会自动继承。但是下面的代码快照暗示了一些不同的东西。#include#includestructA{typedefintX;};structA_{typedefcharX;};structB:A{};structB_:A,A_{};templateusingvoid_t=void;templatestructhas_typedef_X:std::false_type{};templatestructhas_typedef_X>:std::true_type{};intmain(){std::cout::value::value::value::value输

c++ - 'typedef' 是否在 C++ 类中自动继承?

我曾经相信'typedef'不会自动继承。但是下面的代码快照暗示了一些不同的东西。#include#includestructA{typedefintX;};structA_{typedefcharX;};structB:A{};structB_:A,A_{};templateusingvoid_t=void;templatestructhas_typedef_X:std::false_type{};templatestructhas_typedef_X>:std::true_type{};intmain(){std::cout::value::value::value::value输

c++ - typedef 用于可以包含 size_t 的有符号类型?

对于可以包含所有size_t值的带符号类型,是否有标准(或MSVC专有)typedef?IE。在64位系统上,它将是一个128位有符号整数。 最佳答案 通常不可能定义这样的类型。实现size_t是完全合法的。支持的最大无符号类型,这将(几乎可以肯定)意味着没有有符号类型可以保存其所有值。ptrdiff_t不一定足够宽。这是两个指针相减的结果,但没有什么说指针减法不会溢出。请参阅C++标准的第5.7节:Whentwopointerstoelementsofthesamearrayobjectaresubtracted,theresul

c++ - typedef 用于可以包含 size_t 的有符号类型?

对于可以包含所有size_t值的带符号类型,是否有标准(或MSVC专有)typedef?IE。在64位系统上,它将是一个128位有符号整数。 最佳答案 通常不可能定义这样的类型。实现size_t是完全合法的。支持的最大无符号类型,这将(几乎可以肯定)意味着没有有符号类型可以保存其所有值。ptrdiff_t不一定足够宽。这是两个指针相减的结果,但没有什么说指针减法不会溢出。请参阅C++标准的第5.7节:Whentwopointerstoelementsofthesamearrayobjectaresubtracted,theresul

C++ 函数类型

我在理解函数类型时遇到问题(例如,它们显示为std::function的Signature模板参数):typedefintSignature(int);//thesignatureinquestiontypedefstd::functionstd_fun_1;typedefstd::functionstd_fun_2;static_assert(std::is_same::value,"Theyarethesame,cool.");intsquare(intx){returnx*x;}Signature*pf=square;//pfisafunctionpointer,easySign