轉載出處:http://blog.csdn.net/alvin969/article/details/3177100 http://www.cnblogs.com/lidan/archive/2011/07/24/2239507.html
在使用std::vector的過程中,編譯器報瞭如下的warning:
raits@D@std@@V?$allocator@D@2@@1@0ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z : identifier was truncated to '255' characters in the browser information
d:/rtd/ruleloader/treenode.h(15) : see reference to class template instantiation 'std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct st
d::char_traits<char>,class std::allocator<char> > > >' being compiled
{
public:
a_really_long_class_name() {};
int m_data;
};
void main()
{
a_really_long_class_name test_obj;
test_obj.m_data = 12;
}
class VeryLongClassNameA{};
template <class B1, class B2, class B3>
class VeryLongClassNameB{};
template <class C1, class C2>
class VeryLongClassNameC{};
template <class D1>
class VeryLongClassNameD{};
class SomeRandomClass{};
typedef VeryLongClassNameD<SomeRandomClass> ClassD ;
typedef VeryLongClassNameC<SomeRandomClass, ClassD> ClassC;
typedef VeryLongClassNameB<SomeRandomClass, ClassC, ClassD> ClassB;
typedef VeryLongClassNameA<SomeRandomClass, ClassB, ClassC, ClassD> ClassA;
void SomeRandomFunction(ClassA aobj){}
void main()
{
ClassA AObj ;
SomeRandomFunction(AObj) ;
}
#define VeryLongClassNameA A
#define VeryLongClassNameB B
#endif
另一種是屏蔽4786warning: