- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
template<class T>
class Box
{
private:
explicit Box(const Box&);
Box& operator = (const Box&);
public:
explicit Box()
: m_value(0)
{}
explicit Box(T* value)
: m_value(value)
{}
~Box()
{
std::auto_ptr <T> toDelete(m_value);
}
T* Release()
{
T* const result(m_value);
m_value = 0;
return result;
}
void Reset(T* value)
{
std::auto_ptr <T> toDelete(m_value);
m_value = value;
}
private:
T* m_value;
};
Setry 19.11.2012 12:03 # 0
roman-kashitsyn 19.11.2012 12:21 # 0
Setry 19.11.2012 12:30 # 0
roman-kashitsyn 19.11.2012 12:38 # +5
Ведь в книжке написано, что вызывать деструктор явно - очень опасно, пусть грязную работу делает auto_ptr
govnomonad 19.11.2012 17:53 # +1
TarasB 19.11.2012 14:15 # +2
В связи с тем, что новый стандарт позволяет писать
std::unique_ptr<Foo>a(x,y,z) (будет вызван Foo(x,y,z)), я предлагаю выпилить smart_ptr(T*) нахуй.
defecate-plusplus 19.11.2012 14:44 # +5
eshield 19.11.2012 15:32 # +1
TarasB 19.11.2012 16:40 # 0
defecate-plusplus 19.11.2012 16:50 # +3
Результатов: примерно 277 000 000 (0,30 сек.)
TarasB 19.11.2012 17:56 # −1
3.14159265 19.11.2012 18:36 # +2
Прочёл этот мультиязыковой пиздец с третьего раза.
roman-kashitsyn 19.11.2012 17:24 # +3