附,MSDN的解决方案
The following example demonstrates that templates with some long class names as their parameters can easily exceed the 255-character limit. Solutions to the problem are also provided.
// C4786.cpp
// compile with: /FR /W3
// C4786 expected
#pragma warning(default : 4786)
// SOLUTION1: uncomment the next 4 lines
// #ifdef _DEBUG
// #define VeryLongClassNameA A
// #define VeryLongClassNameB B
// #endif
// SOLUTION2: An alternative solution:
// uncomment the next 3 lines.
// #ifdef _DEBUG
// #define SomeRandomClass SRC
// #endif
#pragma warning(default : 4786)
template <class A1, class A2, class A3, class A4>
class VeryLongClassNameA{};
template <class B1, class B2, class B3>
class VeryLongClassNameB{};
template <class C1, class C2>
class VeryLongClassNameC{};