template<class T> struct EmptyValue // assign "default" value of type T, even without callable default ctor { static const T& Default; private: static const char temp[sizeof(T)]; }; template<class T> const char EmptyValue<T>::temp[] = {}; template<class T> const T& EmptyValue<T>::Default = *(T*)temp;
Ну это что-то странное
почему?
А для чего?
И тесты какие-то писал/прогонял?
Ага, выглядит как попытка отстрелить себе ноги. )))
В любом случае это отстрел ног на нетривиальных типах
например? Я тестил на пользовательских типах, вроде работает. В любом случае, если что-то можно улучшить, то было бы здорово это услышать, я немного волнуюсь по поводу моего кода...
Ну если у типа дефолтный конструктор не тривиальный и деструктор
хм. вообще, может быть, надо протестировать, да. ладно, а как бы вы улучшили?
Непонятно для чего эти извращения со статическим массивом и статическими переменными
Обсуждают сегодня