Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

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

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

#include <iostream>
using namespace std;

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

    return 0;
}

double {}是什么语法?

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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{};

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...