Здравствуйте, MarcoPolo, Вы писали:
MP>Независимо от вас написал
MP>MP>template<typename T>
MP>bool in_list(T x, T v) {
MP> return x == v;
MP>}
MP>template<typename T, typename... Args>
MP>bool in_list(T x, T first, Args... args) {
MP> return x == first || in_list(x, args...);
MP>}
MP>
Для того, чтобы поддержать пустые списки, лучше написать чуть по-другому:
template<typename T>
bool in_list(T&&) {
return false;
}
template<typename T, typename... Args>
bool in_list(T&& x, T&& first, Args&&... args) {
return x == first || in_list(x, args...);
}
Ну и параметры лучше принимать по ссылкам, все-таки — чтобы работало и для некопируемых/неперемещаемых типов.