Я пытаюсь написать функцию, которая проверяет, может ли приводимая переменная соответствовать целевому типу, и assert(), если нет. Прямо сейчас это то, что я придумал. Я еще не проверял. Я хотел бы, чтобы шаблон определял тип передаваемой переменной автоматически, с чем-то вроде typeid, хотя я действительно не знаю, что такое typeid на самом деле. Это возможно? Кроме того, я не очень разбираюсь в шаблонах.
template<typename from_T, typename to_T>
static inline to_T safe_cast(from_T variable)
{
assert(variable >= std::numeric_limits<to_T>::min());
assert(variable <= std::numeric_limits<to_T>::max());
return static_cast<to_T>(variable);
}
Что ж, если это действительно какая-то функция, которая уже делает это, о которой я не знаю, я буду рад услышать.