C++类型擦除与性状

我想知道这是可能使符合性状像这样的擦除类型:C++类型擦除与性状

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);

}

回答:

没有任何外部库,需要做很多工作才能实现您想要的功能。使用Louis Dionne's dyno

DYNO_INTERFACE(Readable, 

(read, uint8_t (uint16_t))

);

auto test(Readable& r) -> uint8_t {

return r.read(0);

}

以上是 C++类型擦除与性状 的全部内容, 来源链接: utcz.com/qa/262602.html

回到顶部