在网上看到了这么一个例子:
#include <iostream> using namespace std; int main() { // 不懂下面这句语句的含义 double {}; return 0; }
double {}是什么语法?
double {}
我用std::is_same判断类型是(double)0.0,但是没见过这种语法。
std::is_same
(double)0.0
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{};
548k questions
547k answers
4 comments
86.3k users