Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
А чем Box с закрытыми конструкторами копирования и оператором присваивания лучше того же std::auto_ptr? Судя по всему, роль у них примерно одинаковая: единолично владеть указателем на объект. Так читабельнее и понятнее автору? Тем, что, в отличие от auto_ptr, не затрёт указатель при копировании?
> оборачивание в std::auto_ptr в деструкторе и reset Ведь в книжке написано, что вызывать деструктор явно - очень опасно, пусть грязную работу делает auto_ptr
Меня больше убивает сама возможность вот так брать все эти умные указатели , и инициализировать их указателем, жившим и раньше. Не тем, которые получены прямо на месте по оператору new, а тем, которые можно получить даже так:
std::unique_ptr<int>a ( new int);
std::unique_ptr<int>b ( &(*a) );
В связи с тем, что новый стандарт позволяет писать
std::unique_ptr<Foo>a(x,y,z) (будет вызван Foo(x,y,z)), я предлагаю выпилить smart_ptr(T*) нахуй.
Ой ты ж блядь крестоблядь, оказывается, это крестосмартные пэтээры надо дуить не вронгно, а именно правильным образом, и только тогда они работают как надо!
Ведь в книжке написано, что вызывать деструктор явно - очень опасно, пусть грязную работу делает auto_ptr
В связи с тем, что новый стандарт позволяет писать
std::unique_ptr<Foo>a(x,y,z) (будет вызван Foo(x,y,z)), я предлагаю выпилить smart_ptr(T*) нахуй.
Результатов: примерно 277 000 000 (0,30 сек.)
Прочёл этот мультиязыковой пиздец с третьего раза.