Microsoft KB Archive/151167: Difference between revisions

From BetaArchive Wiki
m (Text replacement - ">" to ">")
m (Text replacement - """ to """)
 
Line 55: Line 55:
<div class="errormessage">
<div class="errormessage">


error LNK2001: unresolved external symbol &quot;public: static int Outer<int>::Inner::sobj&quot;(?sobj@Inner@?$Outer@H@@2HA)
error LNK2001: unresolved external symbol "public: static int Outer<int>::Inner::sobj"(?sobj@Inner@?$Outer@H@@2HA)


</div>
</div>

Latest revision as of 10:10, 21 July 2020

Knowledge Base


Article ID: 151167

Article Last Modified on 12/2/2003



APPLIES TO

  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 2.2
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Professional Edition



This article was previously published under Q151167

SYMPTOMS

Linker error LNK2001 is generated for static member variables of nested classes in class templates. The message states:

error LNK2001: unresolved external symbol "public: static int Outer<int>::Inner::sobj"(?sobj@Inner@?$Outer@H@@2HA)

RESOLUTION

Do not use static member variables in nested classes of class templates.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

The sample code below gives the error message LNK2001.

Sample Code

/* Compile options needed: none
*/ 

template<class T> class Outer
{
public:
    static T souter;

    class Inner
    {
    public:
        static T sobj;
    };
};

template <class T> double Outer<double>::souter = 1;

template <class T> int Outer<int>::Inner::sobj = 5;

void main()
{
    double dval = Outer<double>::souter;

    int i = Outer<int>::Inner::sobj;
}
                


Additional query words: kbVC400bug

Keywords: kbbug kbcpponly kbcompiler KB151167