首页 > 解决方案 > C++ 中的可迭代指定初始化器替代方案

问题描述

在 C99 中,可以初始化结构数组

 static struct {char* tag; char* msg;} help_info[] = {[0]={"tag0","msg0"}, [1]={"tag1", "msg1"}};

这在 C++ 中无效。为包含已定义信息的可迭代对象复制此行为的可能替代方法是什么?

标签: c++arrayscglobaldesignated-initializer

解决方案


如另一个答案所述:

从此链接中指定的初始化程序在 C++指定初始化程序中不受支持:

注意:乱序指定初始化、嵌套指定初始化、指定初始化和正则初始化混合、数组的指定初始化在C编程语言中都是支持的,但在C++中是不允许的。

但是,我相信此代码将满足您的需求。

static struct { const char* tag; const char* msg; } help_info[] = { {"tag0","msg0"}, {"tag1", "msg1"} };

推荐阅读