OVH Cloud OVH Cloud

template et visual c++

11 réponses
Avatar
Godot
Bonjour,

En écrivant des templates sous visual c++ 6, j'ai procédé de la façon
suivante

Fichier a.hpp :
----------------------------------
template <class T> class A
{
};

#include "a.cpp"
-----------------------------------

Histoire de séparer l'implémentation du template de sa définition. Seulement
lors du link, le compilateur essaie aussi de compiler séparément a.cpp ce
qui entraîne évidemment des erreurs de compilation.
Le problème ne se pose pas lorsque j'enlève le fichier a.cpp de la liste des
fichiers du projet mais j'aimerais bien que a.cpp y apparaisse et ne soit
pas compilé. Comment faire ?
Merci pour vos suggestions.

1 réponse

1 2
Avatar
foo
Godot wrote:
Bonjour,



bonsoir,


En écrivant des templates sous visual c++ 6, j'ai procédé de la façon
suivante

Fichier a.hpp :
----------------------------------
template <class T> class A
{
};

#include "a.cpp"
-----------------------------------



pour séparer l'implémentation du template et sa définition, j'aurrais
plutot fait ca dans un .inl

file foo.hpp :
template <typename T>
class foo
{
};

#include "foo.inl"



Histoire de séparer l'implémentation du template de sa définition. Seulement
lors du link, le compilateur essaie aussi de compiler séparément a.cpp ce
qui entraîne évidemment des erreurs de compilation.
Le problème ne se pose pas lorsque j'enlève le fichier a.cpp de la liste des
fichiers du projet mais j'aimerais bien que a.cpp y apparaisse et ne soit
pas compilé. Comment faire ?
Merci pour vos suggestions.





++
------------------
RFC 3092
------------------
1 2