3
に、私はこのようになります機能書きたい:私はこのようにそれを呼び出すことができるように推測shared_ptrのT関数宣言
template<class T>
void Foo(const std::shared_ptr<const T>& ptr);
を:しかし
std::shared_ptr<int> ptr;
Foo(ptr);
、コンパイラはできませんTを推定し、私はそれを明示的に行う必要があります。
Foo<int>(ptr);
またはvoid Foo(const std::shared_ptr<T>& ptr)
でそれをオーバーロードします。
Foo
とconst T
という単一の宣言を持つことができますので、T
を推測できますか?
共有ポインタがコピーされるように設計されている - それはグラムです彼らは参照でそれらを渡すことは、私たちの間違った考えです。 – UKMonkey
@UKMonkeyは、まさに正しいものではありません。ここを参照してくださいhttp://stackoverflow.com/questions/3310737/shared-ptr-by-reference-or-by-value – Hayt
@Hayt十分に - そこに述べたように、それはオプションの問題です。私はただ頷き、眠りに戻る。 – UKMonkey