Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Как создать шаблонный алиас?

#cpp #cpp11 #шаблоны_с++


Хочу сделать проверку типа итератора каким-то таким способом:

template 
using is = std::is_same::iterator_category, T>::value;


И потом использовать это дело в ассертах (RanIt - шаблонный тип):

static_assert(is, "random access required");


Что делаю не так?
    


Ответы

Ответ 1



Либо замените using на constexpr bool, либо уберите из определения ::value и перенесите его в место проверки. using - не константа, а алиас. Может быть синонимом типа, внутри которого определена константа value, но сам не может быть константой.

Комментариев нет:

Отправить комментарий