2
如何使語句更短:如何簡潔地創建shared_ptr?
auto ptr = std::shared_ptr<CPoint>(new CPoint(x, y));
請注意CPoint
出現了兩次。它可以縮短嗎?
,如:
auto ptr = XXXX<CPoint>(x, y);
XXXX
是一個宏觀的或任何東西。它應該適用於任何具有任何參數的構造函數。
auto ptrA = XXXX<ClassA>(); // a shared_ptr to new ClassA()
auto ptrB = XXXX<ClassB>(a, b, c); // a shared_ptr to new ClassB(a, b, c)
非常好,謝謝! – Zach
如何使用typedef std:make_shared,我想將它縮短爲:'auto p = $ new (a,b,c)'? –
Zach
@Zach'模板 auto snew(Args && ... args){ return std :: make_shared (std :: forward (args)...); } @ –
Quentin