c++ - 隐式默认可构造的含义?

标签 c++ c++11

关于 this reference page对于 std::tuple 据说该类型的默认构造函数是“显式的当且仅当 Ti 对于至少一个 不是隐式默认构造的我”。

我对“隐式默认可构造”的含义有点困惑。有人可以给我举个例子吗?

最佳答案

这是一个例子:

struct A {};
struct B { explicit B() = default; };

int main()
{
    A a1 = {};
    A a2 {};

    // B b1 = {}; // Error, would use explicit default constructor
    B b2 {};
}

自 C++11 以来,由于列表初始化,具有 explicit 的构造函数变得更加相关。

关于c++ - 隐式默认可构造的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41784853/

相关文章:

c++ - OpenGL 只能绑定(bind)到 GL_TEXTURE0

c++ - 为什么向上转换有效但向下转换会产生编译时错误?

c++ - 如何直接从构造函数结束 C++ 代码?

c++ - 使用可变参数测试成员函数是否存在

c++ - 在Mac OS X 10.8上编译并使用boost 1.51.0

c++ - 可变参数模板 : error: parameter packs not expanded with '...'

c# - 将 boost::archive 写入 C# 流

c++ - 为什么 boost::future<T>::then() 产生一个新线程?

multithreading - C++11 中的动态内存分配是线程安全的吗?

java - .Net 和 C++ 到 Java 过渡的良好开端?