C ++ 11 static_assert (и используемые в нем функции)
static_assert
кажется, очень хорошая функция вместе с шаблонами.
Однако у меня возникают проблемы с поиском функций в стандартной библиотеке для выполнения различных тестов во время компиляции.
Например, я ищу функцию, чтобы проверить, является ли тип подтипом другого.boost::is_base_of
выполняет работу, однако, является сопоставимой функцией в std, поэтому мне не нужно полагаться на boost.
По сути, есть хороший источник для списка функций, которые могут быть использованы вstatic_assert
и содержатся в стандартной библиотеке C ++ 11?
Когдаstatic_assert
казнят? Могу ли я поместить его в любом месте шаблона, и он оценивается для каждого экземпляра шаблона? Может ли оно быть использовано для ограничения параметров шаблона как определенного подтипа класса?