BUG: You still receive a "warning C4768" message even if you use the warning pragma to disable the warning in Visual C++

Article translations Article translations
Article ID: 167355 - View products that this article applies to.
This article was previously published under Q167355
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page

SYMPTOMS

Warnings similar to the following are generated even if you use the warning pragma to disable the warning:
warning C4786:
'std::rb_tree<CAiSpanningTree<State,std::less<State>>::TransClosureNode, CAiSpanningTree<State,std::less<State>>::TransClosureNode,std::ident<Cai SpanningTree<State,std::less<State>>::TransClosureNode,CAiSpanningTree<S tate,std::less<State>>::TransClosureNode>,std::less<CAiSpanningTree<Stat e,std::less<State>>::TransClosureNode>>' : identifier was truncated to '255' characters in the debug information
The code:
   #pragma warning(disable:4786)
				
disables warnings that list the file and line number. For example:
   C:\test\Text.cpp(25) : warning C4786:
				

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

This problem was corrected in Microsoft Visual C++ .NET.

MORE INFORMATION

This warning can be ignored. However, the identifier may not be accessible or viewable in the debugger.

Sample code

   /*
   Compiler Options: /Zi
   */ 

   #include <stddef.h>
   #include <new.h>
   #pragma warning(disable:4786)

   namespace std {

      template <class T, class U>  struct ident {};
      template <class T1, class T2> struct pair {};
      template <class Arg1, class Arg2, class Result>
         struct binary_function {};
      template <class T>struct less : binary_function<T, T, bool> {};
      template <class T, class Distance> struct bidirectional_iterator {};
      template <class Key, class Value, class KeyOfValue, class Compare>
        class rb_tree {
          public:
             typedef int size_type;
             typedef int difference_type;
             typedef void* link_type;
             struct rb_tree_node {};
             typedef Key key_type;
             class iterator : public bidirectional_iterator<Value,
                difference_type> {};
             class const_iterator   : public
                bidirectional_iterator<Value,difference_type> {
                    protected:
                    link_type node;
                    const_iterator(link_type x) : node(x) {}
             };
             public:
                size_type count(const key_type& x) const;
             };
        template <class Key, class Value, class KeyOfValue,
                 class Compare>
                 rb_tree<Key, Value, KeyOfValue, Compare>::size_type
                 rb_tree<Key, Value, KeyOfValue, Compare>::
                 count(const Key& k) const {
                    size_type n = 0;
                    return n;
             };
             template <class Key, class Compare>   class set {
               typedef ::std::rb_tree<Key, Key,ident<Key, Key>, Compare>
                 rep_type;
          rep_type t;
     };

   }

   template <class Node, class Compare>class CAiTransitiveClosure{
   public:

      typedef std::set<Node, Compare > NodeSet; NodeSet m_todo;

   };

   template <class Node, class Compare> class CAiSpanningTree {
   public:

      typedef std::set<Node, Compare > NodeSet;

   protected:

      typedef Node CAiSpanningTreeNode;
      typedef NodeSet CAiSpanningTreeNodeSet;

   private:

      struct TransClosureNode {};
      struct TransClosureGraph
        : public CAiTransitiveClosure<TransClosureNode,

   std::less<TransClosureNode> > 

      {};

   public:

      CAiSpanningTree(const Node& initialNode);
      CAiSpanningTree(const NodeSet& initialNodes);

   };

   struct State { };
   class CformSpanningTree:public CAiSpanningTree<State,std::less<State>>
   {
   public:

       CFormSpanningTree( NodeSet initial)
      : CAiSpanningTree<State, std::less<State> >(initial)
      {}

   };
				

Properties

Article ID: 167355 - Last Review: February 24, 2014 - Revision: 3.0
APPLIES TO
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Keywords: 
kbnosurvey kbarchive kbbug kbfix kbnoupdate kbcode kbcompiler KB167355

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com