OVH Cloud OVH Cloud

Adresse d'une fonction template

12 réponses
Avatar
Thierry Noc
J'arrive pas a trouver la syntaxe pour obtenir l'adresse d'une fonction
template (gcc 3.4.2):


extern void libfn(int(*)(int));


template <typename T>
class maclass {

friend int fn(int)
{
T var;
return(0);
}

void setup()
{
// libfn(fn); // OK avec gcc 2.95
// libfn(fn); // `fn' undeclared (first use this
function)
// libfn(fn<T>); // `fn' undeclared (first use this
function)
libfn(::fn<T>); // `::fn' has not been declared
}

};

Une idée ?

2 réponses

1 2
Avatar
kanze
Matthieu Moy wrote:
Thierry Noc writes:

En fait gcc 2.95 était trop intelligent,


GCC 2.95 faisait n'importe quoi avec la norme et te permetait
de faire du code pas portable du tout ...


G++ 2.95 est sorti avant la norme, ou très peu après, et faisait
très bien avec ce qu'il y avait à l'époque. Quant à la
portabilité... malheureusement, on est encore loin de la
situation où conforme == portable. Pendant longtemps, en fait,
du code écrit pour 2.95 était plus portable que celui écrit pour
des versions antérieures. (La situation semble s'être améliorée
dernièrement.) Ne juge pas ce compilateur à l'aune
d'aujourd'hui -- il était un des meilleurs à son époque.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Jean-Marc Bourguet
writes:

Matthieu Moy wrote:
Thierry Noc writes:

En fait gcc 2.95 était trop intelligent,


GCC 2.95 faisait n'importe quoi avec la norme et te permetait
de faire du code pas portable du tout ...


G++ 2.95 est sorti avant la norme, ou très peu après, et faisait


July 31, 1999

d'apres http://gcc.gnu.org/releases.html#timeline

Et sincerement, le point en question est tellement tordu que j'aurais
du mal a jeter la pierre a un compilateur qui aujourd'hui encore ne
ferait pas ce qui est demande.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org



1 2