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++入门 p.446:
return hash<string>() (sd.isbn());
Run Code Online (Sandbox Code Playgroud)
我不理解带有两对括号的返回表达式.本书前面没有类似的语法.
我看到过的例子:
std::cout << std::plus<>{}(a, b) << '\n';在这里的问题。
std::hash<T>{}(54879)
和其他人,我现在找不到它们。
我知道object{}或object()调用默认的ctor,object{val}或object(val1,val2)调用带参数的构造函数。和object<>{}或object<T>()显式指定对象的任何类型参数。但是,当所有这些一起使用时,这意味着什么呢?我也找不到说明此问题的文章或网页,否则我可能会遗漏某些东西。它是什么?