Проверить компилируемость кода
От: _NN_ www.nemerleweb.com
Дата: 15.05.19 20:01
Оценка:
Есть ли в современном (C++17) способ проверить компилируемость кода и выбрать перегрузку в соответствии с этим ?
Например:
// Хотим узнать будет ли компилироваться этот код для T
template<typename T> void range_for(T const& t) { for(auto&& e : t) {} }

template<typename T, bool = false>
struct is_range_forable : std::false_type{};

template<typename T>
struct is_range_forable<T, __is_compiling__(  range_for(std::declval<T>()) )  : std::true_type{};


В C++20 Обещают лямбды в decltype и тогда задача должна решиться без пробем.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.