【发布时间】:2013-07-09 05:57:33
【问题描述】:
我需要一个元组辅助函数,如果请求的类型在元组中不存在,它会返回一个默认构造的空类型。
例如
std::tuple<bool, int> tuple(true, 0);
static_assert(std::is_same<decltype(get_or<double, std::nullptr_t>(tuple)),
std::nullptr_t>::value, "");
assert(get_or<double, std::nullptr_t>(tuple) == nullptr);
我想我需要一些增强融合魔法,但我还没有完全弄清楚。有什么建议吗?
【问题讨论】:
-
你的第一行不应该编译。您需要传递第二个构造函数参数。
-
@juanchopanza - 我认为第一行实际上是问题所在。他希望能够像这样初始化元组并将第二个参数设置为默认值
-
@asafrob 好的。提出问题的方式让我感到震惊。没有辅助函数可以修复该编译器错误。
-
我认为这是同一个问题stackoverflow.com/questions/13301863/…
-
@juanchopanza:你是对的。我已经修正了错字。
标签: c++ tuples template-meta-programming boost-fusion