【发布时间】:2017-12-18 10:42:13
【问题描述】:
我想知道这是否可以创建一个符合这样一个特征的擦除类型:
template<class T>
using read_t = std::conditional_t<true,
decltype(std::declval<T>().Read(uint16_t{})),
std::integral_constant<uint8_t (T::*)(uint16_t), &T::Read>>;
并像这样使用它?
using any_readable_t = any<read_t>;
auto test(any_readable_t &r) -> uint8_t {
return r.Read(0);
}
【问题讨论】:
-
是
.read还是.Read? -
这是 .Read,我 derped。
-
看看Boost.TypeErasure boost.org/doc/libs/1_65_1/doc/html/boost_typeerasure.html
-
你不想概念吗?
-
@Jarod42 如何在 llvm 5 中使用概念?
标签: c++ c++17 type-erasure stdany