ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1015466 Топик полностью
VladislavS. (03.07.2020 06:57, просмотров: 489) ответил йцyкeн на Да, так можно, но идея была в том, что сами классы даны в ощущениях, и менять в них что-либо нежелательно.
Ну если программировать "в ощущениях" да "по понятиям", то "не в падлу" буде на sovf подсмотреть. :) 
template<typename T, typename = void>
struct HasFoo: std::false_type
{};

template<typename T>
struct HasFoo<T, std::enable_if_t<std::is_same<decltype(std::declval<T>().foo()), void>::value>>: std::true_type
{};

template<typename T>
constexpr bool HasFoo_v = HasFoo<T>::value;

A a;
if constexpr (HasFoo_v<A>) a.foo();