2
以下のコードは正常に動作します:インスタンス化オブジェクトが個別に共有ポインタのためのC++
std::map<std::string,std::ofstream*> m_jsTabFilesMap;
m_jsTabFilesMap.insert({ listOfTabNames[i], new std::ofstream(jsFilename)});
しかし、私はinsert関数の苦情に共有ポインタでinsert()
が存在する機能のないオーバーロードバージョンを、通常のポインタを交換しない場合。
std::map<std::string, std::shared_ptr<std::ofstream>> m_jsTabFilesMap;
これを修正するにはどうすればよいですか?私は新しいものを使用してオブジェクトをインスタンス化する方法とは関係がありますか。
それでも 'm_jsTabFilesMap.insert({listOfTabNames [i]は、新しいのstd :: ofstreamの(jsFilename)})を使用している;'あなたはそれを変更std :: map> m_jsTabFilesMap; 'には? –
NathanOliver