据我所知,std::string
是非POD类型
当我定义一个包含std::string
字段的结构时
我还可以使用brace-init-list
初始化结构吗?
代码如下工作。编译器没有给我任何警告。我错过了什么吗?
#include <stdio.h>
#include <string>
int main()
{
struct Book
{
int id;
std::string title;
};
Book book = {42, "hello, world"};
printf("%d:%s\n", book.id, book.title.c_str());
}
$ g++ --version
g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
$ g++ -Wall -std=c++98 main.cpp -lstdc++
$ ./a.out
42:hello, world