как я мог заставить static_assert
в этом данном классе:Force static_assert стрелять во время типа инстанцирования
template < int I >
struct foo
{
static_assert(I < 5 ,"I must be smaller than 5!");
};
огнь, когда я создаю экземпляр шаблона нет, когда я инстанцирование результирующего типа:
int main()
{
typedef foo<5> t; // compiles
t tt; // will not compile
}
Вся причина 'typedef foo < 5 > t;' compiles - это потому, что он * не * создает экземпляр вашего шаблона. – hvd