Problem mit Template-Funktion
-
Hi,
ein kleines Beispielprogramm sollte mein Problem anschaulich verdeutlichen:
#include <iostream> class class1 { public: class1(int x) : value(x) { } typedef int dataType; int value; }; class class2 { public: class2(float x) : value(x) { } typedef float dataType; float value; }; template <class X> void function(X &ref) { X::dataType dummy; // hier steigt der GCC (3.2) aus dummy = ref.value; std::cout << dummy << std::endl; } int main() { class1 x(42); class2 y(42.42); function(x); function(y); }
Dieses Programm compiliert mit dem Borland C++ Compiler problemlos. Der GCC meckert, dass es einen Syntax-Error in der Zeile gibt, die die Variable Dummy deklariert. Kann ich den GCC irgendwie dazu bewegen diese Programm so zu kompilieren??
Vielen Dank
-
Morgen,
die Funktion muss folgenderweise aussehen:
template <class X> void function(X &ref) { typename X::dataType dummy; // hier steigt der GCC (3.2) aus dummy = ref.value; std::cout << dummy << std::endl; }
mfg
v R
-
danke