Bonjour, je suis en train de me faire une librairie. Mon problème vient maintenant que j'ai une fonction template et j'obtiens l'erreur C2894 sous Visual Studio 2005

error C2894: templates cannot be declared to have 'C' linkage
pour exporter une fonction non template, je fais ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
#endif
 
#ifdef WIN32
#ifdef MaLib_EXPORTS
#define MaLib_API __declspec(dllexport)
#else
#define MaLib_API __declspec(dllimport)
#endif
#else
#define MaLib_API
#endif
 
 
EXTERN_C MaLib_API void __stdcall str_trim(std::string & str);
et dans mon fichier .cpp j'ai le code source de la fonction str_trim()

Maintenant pour une fonction template, où dois-je mettre le mot-clé EXTERN_C (qui vaut ici extern "C") ?

Merci d'avance