【发布时间】:2021-02-18 00:52:36
【问题描述】:
这主要是一个好奇的问题。
我看到了这样的代码(我对它的作用不感兴趣)
constexpr auto xxx = boost::hana::overload(
[](SomeType& x){ /* x is used and something is returned */ },
[](SomeOtherType1&){ /* no-op in this case */ },
[](SomeOtherType2&){ /* no-op in this case */ }
);
后两个 lambda 表达式只是忽略它们的论点。
因为我知道boost::hana::always 是创建一个忽略其参数并始终返回传递给always 的参数的函数,所以如果 Hana(或另一个库)提供类似的函数来忽略一个参数(或也包括所有参数),这样两个 lambda 表达式都可以替换为,比如说,blackHole,我知道这不是一个数学函数。
当我在 cppreference 上看到 std::ignore 的结果时,我很高兴,但不……这是完全不同的事情。
【问题讨论】:
标签: c++ functional-programming boost-hana function-object