предложите, чтобы у меня была шаблонная функция как следующее:
template<class T>
void doSomething()
{
T a; // a is correctly initialized if T is a class with a default constructor
...
};
Но переменная листы деинициализировали, если T является типом примитива. Я могу записать T (0), но это не работает, если T является классом. Существует ли способ инициализировать переменную в обоих случаях (T == класс, T == интервал, символ, bool...)?
Как и так:
T a{};
Pre-C ++ 11, это было самое простое приближение:
T a = T();
, но это требует T
собираюсь быть членом).