相关疑难解决方法(0)

为什么列表初始化(使用花括号)比替代品更好?

MyClass a1 {a};     // clearer and less error-prone than the other three
MyClass a2 = {a};
MyClass a3 = a;
MyClass a4(a);
Run Code Online (Sandbox Code Playgroud)

为什么?

我在SO上找不到答案,所以让我回答一下我自己的问题.

c++ syntax initialization c++11 list-initialization

349
推荐指数
5
解决办法
13万
查看次数

如何理解这段代码片段中的两对括号?

此代码来自C++入门 p.446:

return hash<string>() (sd.isbn());
Run Code Online (Sandbox Code Playgroud)

我不理解带有两对括号的返回表达式.本书前面没有类似的语法.

c++ hash

42
推荐指数
1
解决办法
2241
查看次数

C ++中此语法std :: class &lt;&gt; {}(arg1,arg2)的含义是什么?

我看到过的例子:

std::cout << std::plus<>{}(a, b) << '\n';在这里的问题。

std::hash<T>{}(54879)

和其他人,我现在找不到它们。

我知道object{}或object()调用默认的ctor,object{val}或object(val1,val2)调用带参数的构造函数。和object<>{}或object<T>()显式指定对象的任何类型参数。但是,当所有这些一起使用时,这意味着什么呢?我也找不到说明此问题的文章或网页,否则我可能会遗漏某些东西。它是什么?

c++ constructor object std type-parameter

2
推荐指数
1
解决办法
72
查看次数