嵌套结构的类型定义
typedef of nested structs
我正在尝试使用这个类型定义一组嵌套结构:
struct _A
{
struct _Sim
{
struct _In
{
STDSTRING UserName;
VARIANT Expression;
int Period;
bool AutoRun;
//bool bAutoSave;
} In;
struct _Out
{
int Return;
} Out;
} Sim;
} A;
typedef _A._Sim._In SIM_IN;
问题是VS2010的编辑器喜欢它。它识别类型定义中的元素,我可以将其作为函数的参数包含,但是当你去构建它时,我首先得到警告C4091(当没有声明变量时忽略左边),然后导致错误C2143"丢失";"之前"。
typepedef的思想是使管理类型定义(指针、原型等)到_A._Sim。用一个名字…如果编译器允许,这似乎是typedef的完美用法。
我如何用一个名称引用嵌套结构,使指针管理和类型规范比使用整个嵌套名称(_A._Sim._In)更容易?
点操作符是应用于对象(就C语言而言)的后缀操作符,也就是说,不能将其应用于类型。
要达到你想要的,你可以使用函数或宏,例如:
#define SIM_IN(x) x._Sim._In
这样做可能不太可取,但如果不能使用typedef实现,我想你总是可以使用
#define _A._Sim._In SIM_IN
但正如我所说,出于各种原因,你可能不喜欢那样。:)
相关文章:
- 使用QJsEngine在Qt中注册自定义类型
- 在UE4中使用未定义类型'UTextBlock'
- 修改"std::set"中用户定义类型的值
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 如何使自定义类型在unordered_map中用作键
- 在 C++20 中是否不再允许在 std 中对程序定义类型的函数模板进行专用化?
- Qt5 远程对象 + 自定义类型,但不在 POD 中
- 为什么转换函数声明不需要至少一个定义类型说明符
- 标准::原子中的自定义类型
- 如何使用自定义类型声明Arduino数组?
- 如何在 Cython 中定义返回 cpp 定义类型的函数?
- 使用自定义访问者时具有自定义类型的提升变体失败(源自 boost::static_visitor)
- 您可以将binary_search应用于具有自定义类型的矢量吗?
- 在自定义类型图中重用 SWIG 映射
- 扩展自定义类型的spdlog
- vim使用户定义类型的COLOR与C++中的基本类型相同
- 重载自定义类型的 std::to_string 和 std::to_chars?
- 具有未声明/未定义类型的 typedef 结构
- 函数重载:内置类型与用户定义类型