C++中 type{} 是什么语法?

在网上看到了这么一个例子:

#include <iostream>
using namespace std;

int main()
{
    // 不懂下面这句语句的含义
    double {};

    return 0;
}

double {}是什么语法?

我用std::is_same判断类型是(double)0.0,但是没见过这种语法。

阅读 3.2k
2 个回答

initialization

int a{3};
int a[3]{1,2,3};
std::string str{"123"};

当然里面也可以啥都没有(这种情况用()有时会被当做函数声明,此时只能用 {}

int a{};
int a[3]{};
std::string str{};

然后变量名是可以没有的(生成一个临时变量/对象)。这种单独放一个语句一般没什么用,除非想利用构造/析构的副作用。但是可以用作函数的参数。:

int {};
(int [3]){}; // 没 () 会被认成 structured binding
std::string{};

image.png
就是给变量初始化用的,c++新标准出的骚语法了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题