复杂<>使用列表初始值设定项与构造函数?

complex<> using list initializer vs constructor?

我正在阅读 Stroustrup C++ 第 4 版。第 162 页类型和声明。具体来说,允许以下内容构造一个complex<>对象。

书评案例A​​是"use constructor"。 case A​​ 真的是一个列表初始化器,初始化的构造函数方法是在 BC 中执行的吗?

#include <iostream>
#include <complex>
using namespace std;

int main(int argc, char *argv[])
{
    complex<double> z = { 0, 3.14 }; // A
    complex<double> h(0, 3.14); // B
    complex<double> i{0, 3.14}; // C

    return 0;
}

这个案例的效果都是一样的;对象由 constructor complex::complex(double, double).

初始化