VC++ 6.0にて
下記のC++をビルドすると
やたら警告が出るのですが何故でしょうかね・・・
#include <map>
#include <string>
using namespace std;
void main()
{
map<string,string> a;
}
警告文
warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<st
d::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::it
erator' : デバッグ情報で識別子が 255 文字に切り捨てられました。
warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<st
d::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_N
ode' : デバッグ情報で識別子が 255 文字に切り捨てられました。
warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<st
d::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_R
edbl' : デバッグ情報で識別子が 255 文字に切り捨てられました。
warning C4786: 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::
allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' : デバッグ情報で識別子が 255 文字に切り捨てられました。
warning C4786: 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::
allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::value_compare' : デバッグ情報で識別子が 255 文字に切り捨てられました。
warning C4786: 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::
allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Kfn' : デバッグ情報で識別子が 255 文字に切り捨てられました。
リンク中...
test.exe - エラー 0、警告 76
c++のmap宣言にて。
Re:c++のmap宣言にて。
> warning C4786
これは典型的な無視すべき警告です。
うるさいので、
できれば、すべてのソースからインクルードされるヘッダに最初にでも入れておくと楽です。
これは典型的な無視すべき警告です。
うるさいので、
#pragma warning(disable:4786)をソースの最初に記述しておくとよいでしょう。
できれば、すべてのソースからインクルードされるヘッダに最初にでも入れておくと楽です。
Re:c++のmap宣言にて。
std::mapに限らず、STL関連のクラスを使用しようとすると、かなりの高確率で警告が出ますよね…。
MicroSoftからすれば、MFCを使えという事なんでしょうね…きっと(あくまで推測です)
MicroSoftからすれば、MFCを使えという事なんでしょうね…きっと(あくまで推測です)
Re:c++のmap宣言にて。
VC6.0では識別子が255文字で警告が出ましたが、VS2005では4096文字以上にならないと
警告は出ません。超えた場合はC4503警告が出ます。
警告は出ません。超えた場合はC4503警告が出ます。