static_assert
, кажется, очень приятная функция вместе с шаблонами.C++ 11 static_assert (и функции, которые будут использоваться в нем)
Однако у меня возникли проблемы с поиском функций в стандартной библиотеке для проведения различных тестов во время компиляции.
Например, я ищу функцию для проверки того, является ли тип подтипом другого. boost::is_base_of
делает эту работу, однако, сопоставимой функцией в std, поэтому мне не нужно полагаться на boost.
В принципе, есть ли хороший источник для списка функций, которые могут использоваться в static_assert
и содержатся в стандартной библиотеке C++ 11?
Когда static_assert
выполнено? Могу ли я разместить его в любом месте шаблона, и он оценивается для каждой инициализации шаблона? Может ли он использоваться для ограничения параметров шаблона как определенного подтипа класса?
Вы пробовали ['std :: is_base_of'] (http://en.cppreference.com/w/cpp/types/is_base_of)? –