Есть ли какая-то конкретная причина для шаблонов переменных в стандартной библиотеке?
C++17 представил различные шаблоны вспомогательных переменных, например:
template< class T, class U >
inline constexpr bool is_same_v = is_same<T, U>::value;
template< class T >
inline constexpr bool is_aggregate_v = is_aggregate<T>::value;
Они все отмечены inline
, поскольку constexpr
подразумевает внутреннюю связь по умолчанию [ ref], даже без inline
одно правило определения не будет нарушено. Так я не вижу inline
необходимо здесь. Также я не вижу никакой выгоды, которую это приносит. Так почему inline
?