der_Kay
Aktives Mitglied
Thread Starter
- Dabei seit
- 02.09.2004
- Beiträge
- 1.765
- Reaktionspunkte
- 25
Hallo,
wie bringe ich g++ ( powerpc-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 build 5247 ) den folgenden Code unter Beibehaltung der Nebenbedingungen bei:
- namespace
- _t protected
- friend-Beziehung
- operator<<-Syntax und Semantik: cout << f << c;
Das Problem ist der überladene operator<< als friend-Template. Code zum Runterladen hängt unten dran.
Dankbar wäre ich, wenn jemand innerhalb der C++-Referenz Verstösse diagnostizieren kann und/oder den Fix hinbekommt.
Vielen Dank fürs Draufschauen,
Kay
p.s.: Das ist keine Spinnerei aus Langeweile, sondern stellt ein echtes Hindernis für mein Klassenlayout dar. Ich wollte nicht unbedingt betonen, daß das "woanders" läuft...
http://i28.photobucket.com/albums/c209/herbert321/70x70_visual_studio.pngVisual C++ 2005 Express Edition
wie bringe ich g++ ( powerpc-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 build 5247 ) den folgenden Code unter Beibehaltung der Nebenbedingungen bei:
- namespace
- _t protected
- friend-Beziehung
- operator<<-Syntax und Semantik: cout << f << c;
Das Problem ist der überladene operator<< als friend-Template. Code zum Runterladen hängt unten dran.
Dankbar wäre ich, wenn jemand innerhalb der C++-Referenz Verstösse diagnostizieren kann und/oder den Fix hinbekommt.
Code:
#include <iostream>
namespace app {
template<typename T>
class myClass
{
protected:
T _t;
public:
myClass(const T& t=T()) : _t ( t ) {;}
template<typename T>
friend std::ostream& operator<< ( std::ostream&, myClass<T>& );
};
using std::ostream;
template<typename T>
ostream& operator<< ( ostream& os, app::myClass<T>& c)
{ return os << c._t; }
};
int main (int argc, char* argv[])
{
typedef app::myClass<float> float_class;
typedef app::myClass<char> char_class;
float_class f ( 42.0 );
char_class c ( 'X' );
std::cout << c << f;
return 0;
}
Vielen Dank fürs Draufschauen,
Kay
p.s.: Das ist keine Spinnerei aus Langeweile, sondern stellt ein echtes Hindernis für mein Klassenlayout dar. Ich wollte nicht unbedingt betonen, daß das "woanders" läuft...
http://i28.photobucket.com/albums/c209/herbert321/70x70_visual_studio.pngVisual C++ 2005 Express Edition
Zuletzt bearbeitet: