我想知道這是可能使符合性狀像這樣的擦除類型: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);
}
它是'.read'還是'.Read'? – alfC
這是。閱讀,我derped。 – uknys
看看Boost.TypeErasure http://www.boost.org/doc/libs/1_65_1/doc/html/boost_typeerasure.html – alfC