こんにちは。
独自で作成した、C:\Emacs_for_Windows\My_C++_Header_for_Bash.hというファイルパスを持つヘッダファイルをインクルードしているC++のソースファイルのtest.cppを、Cygwinのbash上で、g++コマンドを使い、
g++ test.cpp
のようにビルドしたところ、以下のような警告が出ました。
------------------------------------------------------------
bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/strstream:51 から include されたファイル中,
C:\Emacs_for_Windows\My_C++_Header_for_Bash.h:35 から,
test.cpp:2 から:
/bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/backward_warning.h:33:2: 警告: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
------------------------------------------------------------
Borland C++ Compiler 5.5 のbcc32コマンドでは、こういった警告は出ません。
/bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/backward_warning.h:33
を参考に、backward_warning.hの33行目以降をみると、以下のようになっていました。
------------------------------------------------------------
#ifdef __DEPRECATED
33 #warning \
34 This file includes at least one deprecated or antiquated header which \
35 may be removed without further notice at a future date. Please use a \
36 non-deprecated interface with equivalent functionality instead. For a \
37 listing of replacement headers and interfaces, consult the file \
38 backward_warning.h. To disable this warning use -Wno-deprecated.
------------------------------------------------------------
どうやら「__DEPRECATED」が定義されているので、こういった警告が出ているようなのですが、
__DEPRECATEDの意味が分かりません。
警告の指示通り、-Wno-deprecatedを付けたままC++開発を続けて問題ないのでしょうか?
ちなみに、C:\Emacs_for_Windows\My_C++_Header_for_Bash.hの内容は以下の通りです。
------------------------------------------------------------
#ifndef MYHEADER_H
#define MYHEADER_H
//C言語のヘッダファイル
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <time.h>
#include <math.h>
#include <stddef.h>
//C++言語のヘッダの標準識別子
#include <iostream>
#include <fstream>
#include <cctype>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <new>
#include <iomanip>
#include <strstream>
#include <typeinfo>
//STLに関するヘッダ
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <algorithm>
#include <functional>
#include <utility>
#include <numeric>
#include <cassert>
#include <iterator>
//namespaceの解決
using namespace std;
#endif
------------------------------------------------------------
以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。
では、よろしくお願い致します。
お礼
御回答ありがとうございます。 なるほど、それだけのことだったのですね。 了解しました。