0

VS2010 と VS2012 のヘッダー ファイル バージョンでは、スマート ポインター (shared_ptr、unique_ptr、weakptr) の宣言に違いがあるようです。

私が理解している限り、たとえば、shared_ptr は (C++11 を介して) std 名前空間の一部になりました。互換性の問題のために、それはまだtr1 名前空間の一部ですか? もしそうなら、これはどのように達成されますか?

ありがとうございました

4

1 に答える 1

1

ヘッダーで、名前空間<memory>を次のように定義しました。tr1

namespace tr1 { // TR1 additions
using _STD allocate_shared;
using _STD bad_weak_ptr;
using _STD const_pointer_cast;
using _STD dynamic_pointer_cast;
using _STD enable_shared_from_this;
using _STD get_deleter;
using _STD make_shared;
using _STD shared_ptr;
using _STD static_pointer_cast;
using _STD swap;
using _STD weak_ptr;
}   // namespace tr1

_STDyvals.h で次のように定義されています。

#if defined(__cplusplus)
 #define _STD_BEGIN namespace std {
 #define _STD_END       }
 #define _STD   ::std::
于 2013-07-25T11:24:12.580 に答える