У меня есть код, который выглядит так:
template <class T>
T foo(T a) {
if (a) {
// do somethin', returns object of type T
} else {
return NULL;
}
}
Но, конечно, он не будет компилироваться, поскольку NULL не относится к типу T. Кто-то предложил это решение для меня, но мне оно не нравится:
template <class T>
T* foo(T a) {
if (a) {
// do somethin', returns object of type T*
} else {
return nullptr;
}
}
Мне интересно, как сделать эту функцию способной возвращать значение NULL, если возможно, без использования указателя?