使用类内初始化进行聚合-作为默认参数

时间:2019-09-26 10:36:11

标签: c++ aggregate language-lawyer c++17 default-parameters

以下代码无法编译(GCC,clang):

struct outer {
    struct inner {
        int i = 1;
        int j = 2;
    };
    void foo (const 
        inner& param = 
        inner{}) const {}
};

int main() {
    outer{}.foo();
}

但是,向inner添加默认构造函数(带有实现)可以解决此问题。将inner移到名称空间范围也有帮助。

这是什么问题?我希望参考该标准。

0 个答案:

没有答案
相关问题