现代C++会支持 C# "Object Initalizer"语法吗?
Will modern C++ ever support C# "Object Initalizer" Syntax?
我很好奇现代c++标准的人是否考虑或添加了c#的"Object Initializer"语法。例如,在C#中,我可以在初始化期间初始化像这样的对象的成员:
StudentName student2 = new StudentName
{
FirstName = "Craig",
LastName = "Playstead"
};
public class StudentName {
public string FirstName;
public string LastName;
};
如果标准人员计划将"对象初始化器"语法添加到现代C++中,即C++11、C++14、C++17、C++20等,这将非常方便
它目前存在于现代C++规范中吗?
查看指定的初始化程序。自C99以来,它们一直存在于C中,但没有添加到C++中。现在计划在C++20中添加它们,但有一些限制。示例:
struct db_config
{
std::string host = "localhost";
std::string port = "5432";
std::string dbname;
std::string user;
std::string password;
} config = {
.dbname = "test",
.user = "admin",
.password = "v3ry$3cur3"
};
然而,一些编译器(例如GCC(已经允许在C++代码中使用C指定的初始值设定项作为扩展。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- C++语法差异:二维和一维数组(指针算术)
- 现代C++会支持 C# "Object Initalizer"语法吗?