2010-05-21 2 views
1

J'ai créé une classe avec un coup de pouce :: unordered_map en tant que membre,Impossible de créer un objet non géré à l'aide nouveau mot-clé managé C++

linkage.h

#ifndef LINKAGE_H 
#define LINKAGE_H 

#include <boost/unordered_map.hpp> 

class Linkage 
{ 
private: 
    boost::unordered_map<int, int> m_IOMap; 
public: 
     .... 
}; 

Linkage.cpp

#include "stdafx.h" 

... // methods 

et du côté géré de C++, je tente de créer le pointeur de la obj:

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { 
    Linkage* m_pLink = new Linkage(); 
     ..... 
} 

Cependant, cela produit des erreurs:

Error 4 error LNK2005: "private: static unsigned int const boost::detail::type_with_alignment_imp<4>::found" ([email protected][email protected][email protected]@[email protected]@$$Q0IB) already defined in Proj_Test.obj Linkage.obj 
..... 
Error 7 fatal error LNK1169: one or more multiply defined symbols found 

Quelqu'un pourrait-il me expliquer pls? Merci.

Répondre

0

Finalement, ce fonctionne quand j'instancier explicitement dans le constructeur:

#include "stdafx.h" 

Linkage::Linkage() 
{ 
    template boost::unordered_map<int, int>; 
} 
Questions connexes