打印笑脸胡子lambda表达式
Printing the smiley-with-beard lambda expression
我试着打印笑脸带胡子的lambda表达式
#include <iostream>
int main() {
std::cout << <:]{%>; // smile!
return 0;
}
但是它打印了
1
。如何?
正如你所链接到的问题的答案中所解释的,
<:]{%>
等价于
[]{}
不捕获任何内容的lambda表达式可隐式转换为函数指针。在此例中,该函数指针的签名为void(*)()
。
现在,函数指针隐式地转换为布尔值,该值始终是true
,因此输出为1
。
你忘了把"& lt;:{%>。
你应该有:
std::cout << "<:]{%>";
相关文章:
- 这 4 个 lambda 表达式之间有什么区别?
- 使用成员在类中创建 lambda 表达式
- 将 lambda 表达式传递给 std::function in C++
- 在 lambda 表达式中使用 std::atomic
- &&对lambda表达式有什么好处?
- Tbb 库:错误:编写自定义类函数而不是 lambda 表达式时,对函数的调用不匹配
- 列表.erase 中的 lambda 表达式
- 使用 lambda 表达式的 Raspbian G++ 8.3.0 导致 ']' 之前的预期主表达式 - 即使标准设置为 c++14
- 仅通过引用捕获的 lambda 表达式是否保证不会抛出?
- C++: priority_queue:模板参数中的 lambda 表达式
- 容器如何处理 lambda 表达式的参数
- 在C++ Lambda 表达式中,为什么人们更喜欢按值捕获而不是作为参数传递?
- 如何在 lambda 表达式中传递变量?
- 针对 std::function 的 lambda 表达式和模板推导:为什么会这样?
- 如何修改Lambda表达式以将输出放入文本文件
- C++如何使用lambda表达式来捕获上一次迭代的值
- 为什么Qt在信号和插槽中为lambda表达式抛出错误?
- C++:从捕获函数参数的函数返回 lambda 表达式
- C++ Lambda 表达式:通过 ref 开销捕获
- Qt 连接无法识别 lambda 表达式