2017-07-12 17 views
0

私はsconsとubuntuを使用しています。 i「はsconsの」を使用して、いくつかのプログラムを作るときに私は、エラー: 'テンプレート<class>クラスstd :: auto_ptr'は非推奨です

src/db/DBTextLoader.cc:296:3: error: ‘template class std::auto_ptr’ is deprecated [-Werror=deprecated-declarations]

/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here template class auto_ptr;

、のようなエラーが起こると、これは私のコマンドです。

$ ./configuer

$ source something.sh

$ scons

実際、私には分かりません。私はすでにこのサイトとGoogleを検索しています。しかし、私は解決策を見いださなかった。

これは私のG ++バージョンである(また、同じバージョンだっ++とC。)

g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

は、任意のアイデアを持っていますか? ありがとうございます。

+0

G ++( '-std =')に渡すC++標準のバージョンは何ですか? – StoryTeller

+1

インストールしようとしているパッケージの最新バージョンに更新しますか? *廃止された機能を使用していないものそれとも、それ以降のバージョンがない場合でも、積極的に開発している間に、あなたが望むことをする別のパッケージを探してください。 –

+0

@StoryTellerバージョンはC++ 11です。だから私は入力scons evn_file、-std = C++ 11です。 –

答えて

1

Scott Meyersの書籍を読んでいる人は、auto_ptrを使わないことを強くお勧めします。実際には、新しいコンパイラでは、STLコンテナなどでauto_ptrを使用しているときに問題が発生する可能性があるため、使用法を制限することがあります。std::unique_ptrこのオブジェクトの1つのコピーをもっと必要としない場合は、std::unique_ptrstd::shared_ptrポインタをコピーする必要がある場合。

+0

ありがとうございました!私は 'auto_ptr'を 'unique_ptr'に変更しています。そのとき私の問題は解決しました!ありがとうございました! –

関連する問題