質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.85%

  • C++

    3012questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Boost

    30questions

    Boost (ブースト)は、C++の先駆的な開発者のコミュニティ、 またそのコミュニティによって公開されているオープンソースライブラリのことを指します。

Boost の Warning

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 523

BeatStar

score 850

C/C++ ( BetterC )でやっています。

日付操作が Boost では簡単らしいので Boost を使ってみたいと思っています。

私はMinGW ( g++ ) でやっていて、Boost をコンパイルするだけでも大変でしたが、

疑問というか、質問があります。

Boostコンパイル時から Warning が出ていましたが、一応ライブラリは出来ているようです。

で、これを自分の実行ファイルにリンクします。

すると、

...

C:/(パス)/MinGW/posix/mingw32/lib/gcc/i686-w64-mingw32/6.2.0/in
clude/c++/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^~~~~~~~
In file included from C:\(パス)\boost\mingw\include/boost/share
d_ptr.hpp:17:0,
from C:\(パス)\boost\mingw\include/boost/date_
time/gregorian/greg_month.hpp:14,
from C:\(パス)\boost\mingw\include/boost/date_
time/gregorian/greg_ymd.hpp:16,
from C:\(パス)\boost\mingw\include/boost/date_
time/gregorian/greg_calendar.hpp:16,
from C:\(パス)\boost\mingw\include/boost/date_
time/gregorian/gregorian_types.hpp:19,
from C:\(パス)\boost\mingw\include/boost/date_
time/gregorian/gregorian.hpp:20,
from main.cpp:9:
C:\(パス)\boost\mingw\include/boost/smart_ptr/shared_ptr.hpp:44
1:31: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated
-declarations]
explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
^~~~~~~~
...

とWarning が出ています。

( 行がかなり多いため すべてチェックできない... )

一応実行ファイルは出来上がっていますが、Warnig が出ているのでどうすればいいか...

テストプログラム ( サンプルプログラム ) に組み込んでいるので 今は問題ないですが、

作品に組み込む場合で、他の部分でエラーがあっても Warnig のせいで どこでエラーなのか判断がしづらいです。

このWarning を消す方法 ってないでしょうか?

Boost のコンパイル方法は

「www.rodneybeede.com」の「Boost C++ libraries on Windows with MinGW」と

「boostjp」の「Boostライブラリのビルド方法」を参考にして、

  1. MinGW ( g++ ) のパスを設定
  2. bootstrap.bat に 引数 "gcc" を渡す
  3. bootstrapで出来上がった b2 に 引数 ( toolset=gcc link=static variant=release install -j2 --prefix=インストール先 ) を渡す

で出来て、

ソースコードを Boostのヘルプファイル ( html ) から 抜き出して試します。

( コンパイルが通らないことにはどうしようもないので... )

( main.cpp をコンパイルするとして。 )

$rem スタンドアローンで動くようにする
$SET STAND=-static-libgcc -static-libstdc++ -static -lpthread
$g++ -o main.exe main.cpp -IC:\(パス)\boost\mingw\include -LC:\(パス)\boost\mingw\lib -lboost_date_time-mgw62-mt-1_58 %STAND%

と打ってコンパイル。

すると上記に書いたようなWarningが...

このWarningを消す方法が知りたいのです。

( もしかすると MinGW の設定かな? )

[環境等]
言語             : C/C++ ( Better C )
コンパイラ       : MinGW ( g++ )
MinGWのバージョン: (i686-posix-dwarf-rev1, Built by MinGW-W64 project) 6.2.0
Boostのバージョン: 1.58.0 ( boost_1_58_0 )

宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

こんにちは。

この警告頭痛いですよね。gcc側の大きなお世話なのか、boost側の手抜きなのかよくわからないのですが、以前から報告されているけど、今も出るようです。

私はboostのヘッダをインクルードする直前で下記設定しています。

'#pragma GCC diagnostic ignored "-Wdeprecated-declarations"`


【追記】
C++標準規格で、auto_ptrは非推奨で将来なくなると定められているようです。
何故にboostが警告を出ないようにしないのかよく分かりませんが、何か理由があるのかも。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • C++

    3012questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Boost

    30questions

    Boost (ブースト)は、C++の先駆的な開発者のコミュニティ、 またそのコミュニティによって公開されているオープンソースライブラリのことを指します。