Le code suivant ne parvient pas à se compiler dans MSVStudio 2010 Express et semble être dû au fait que la déclaration du conteneur d'amélioration crée une instance (statique?) Du type contenu. Changement boost::ptr_list<TypeContained>
à std::list<TypeContained *>
provoque la compilation avec succès, mais j'aime les conteneurs d'appoint. Quelqu'un a une idée de comment je peux contourner cela? L'erreur est error C2504: 'Proxy<TypeContainer,TypeContained>' : base class undefined
Le conteneur Boost ne peut pas être compilé avec une classe indéfinie (mais déclarée)
#include <string>
#include <boost/ptr_container/ptr_list.hpp>
template <typename TypeContainer, typename TypeContained>
class Proxy
{
private:
typename boost::ptr_list<TypeContained>::iterator m_clsPosition;
public:
class Container {};
};
template <typename V> class Container;
template <typename V>
class Dependent : public Proxy<Container<V>, Dependent<V> >,
public V {};
template <typename V>
class Container : public Proxy<Container<V>, Dependent<V> >::Container {};
int main(int argc, char * argv[])
{
Container<std::string> clsContainer;
return 0;
}
quelles sont les options de votre compilateur? – gda2004