用decltype解释这段代码
explain this code with decltype in it
([] () -> decltype(std::cout << "Hello") {
return std::cout << "Hello";
}()) << ", world!";
打印Hello, world!
.
我就是不明白这是怎么回事。有人能简单地给我解释一下吗?
([] () -> decltype(std::cout << "Hello")
这创建了一个lambda(就地函数),其返回类型与表达式std::cout << "Hello"
相同-即std::ostream&
。[]
启动lambda, ()
为空参数表,->
在返回类型前面,decltype(X)
相当于表达式x的类型,然后函数体:
{
return std::cout << "Hello";
}
然后函数被调用…输出"Hello"并返回流....
())
最后,向返回的流发送更多的文本…
<< ", world!";
相关文章:
- 在java中解决这段代码时面临循环中的问题
- 修改 VS Code 中的默认C++代码段
- 我是如何在这段代码中出现分段错误的
- 我不明白这段代码是如何对这个pythonlist()进行排序的,也不明白如何用C++中的向量来重现它
- 为什么这段代码不起作用,我该如何解决?
- 为什么这段代码给我错误? 有没有自错?
- 有人可以解释一下这段代码如何能够反转字符串
- 可能我知道为什么这段代码没有给出任何输出吗?
- 这段代码的最后一行在做什么?
- 我不知道为什么这段代码会让核心被转储?
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- 有人可以向我解释一下这段代码的作用吗?
- 存储在哪个内存段(代码/数据段)类(员工)中?
- 为什么这段代码会导致无限循环?
- 为什么代码段会引发浮点异常?
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 如何为一段代码启用 -permissive
- 如何知道用于实现标准代码段的确切数据结构和算法,例如在C++STL中?
- 为什么下面的代码段返回指针指向的值而不是指针的地址?
- 谁能告诉我为什么这段代码没有产生正确的输出?