相关疑难解决方法(0)

大括号初始化继承的pod

#include <iostream>
#include <type_traits>


struct base_pod_t {
    unsigned x;
};

struct der_pod_t : public base_pod_t { };

int main()
{
    std::cout << "base_pod_t is POD: " << std::is_pod<base_pod_t>::value << std::endl;
    std::cout << "der_pod_t  is POD: " << std::is_pod<der_pod_t>::value << std::endl;
    base_pod_t b1 = {};     // OK
    base_pod_t b2 = {3};    // OK

    der_pod_t p1 = {};      // OK
//    der_pod_t p2 = {4};   // ERROR!
}
Run Code Online (Sandbox Code Playgroud)

最后一行导致错误.如何der_pod_t用值来初始化?


似乎即使它是一个POD它试图使用构造函数?


编辑: 由于@Praetorian和@dyb建议它是POD因此结果std::is_pod<der_pod_t>::value是正确的.

c++ pod c++11

11
推荐指数
2
解决办法
2327
查看次数

标签 统计

c++ ×1

c++11 ×1

pod ×1