c++のmap宣言にて。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みらの

c++のmap宣言にて。

#1

投稿記事 by みらの » 17年前

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

たかぎ

Re:c++のmap宣言にて。

#2

投稿記事 by たかぎ » 17年前

> warning C4786

これは典型的な無視すべき警告です。
うるさいので、
#pragma warning(disable:4786)
をソースの最初に記述しておくとよいでしょう。
できれば、すべてのソースからインクルードされるヘッダに最初にでも入れておくと楽です。

みらの

Re:c++のmap宣言にて。

#3

投稿記事 by みらの » 17年前

凄いすっきりしました!!!!!

ありがとうございますっ!
助かりましたっ

バグ

Re:c++のmap宣言にて。

#4

投稿記事 by バグ » 17年前

std::mapに限らず、STL関連のクラスを使用しようとすると、かなりの高確率で警告が出ますよね…。
MicroSoftからすれば、MFCを使えという事なんでしょうね…きっと(あくまで推測です)

組木紙織

Re:c++のmap宣言にて。

#5

投稿記事 by 組木紙織 » 17年前

VS2005だとそのような警告は全くと言っていいほどでないです。

改良されたのかな。

GPGA

Re:c++のmap宣言にて。

#6

投稿記事 by GPGA » 17年前

VC6.0では識別子が255文字で警告が出ましたが、VS2005では4096文字以上にならないと
警告は出ません。超えた場合はC4503警告が出ます。

たかぎ

Re:c++のmap宣言にて。

#7

投稿記事 by たかぎ » 17年前

> VS2005では4096文字以上にならないと警告は出ません。

かなりましにはなりましたが、名前空間が深くなると簡単に超えてしまいそうです。

閉鎖

“C言語何でも質問掲示板” へ戻る