Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

24.10.2008, 17:03

template als operator

wie kann ich in template operatoren verwenden
z.b.

Quellcode

1
2
3
4
5
template< class OP >
inline void set(int a)
{
  _member OP a; 
}


hab es auch mal so versucht:

Quellcode

1
2
3
4
5
template< operator OP >
inline void set(int a)
{
  _member OP a; 
}

aber da kommt einige fehler:
error C2833: Operator 'OP' ist kein bekannter Operator oder Typ
error C2059: Syntaxfehler: 'newline'
fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.

2

24.10.2008, 17:11

? du willst also praktisch operator= da einsetzen können oder was?!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

24.10.2008, 17:12

jap genau =,+=,-=...
damit man bei der set methode eingeben kann welchen operator man benutzen soll

4

24.10.2008, 18:56

Das geht so nicht, schon gar nicht bei Zuweisungsoperatoren.

Man kann aber Funktoren übergeben, und da gibt es auch einige zur Addition etc. in der STL, genauer gesagt im Header <functional>. Weitere Informationen...

5

25.10.2008, 00:46

Hm du kannst z.B. folgendes machen:

C-/C++-Quelltext

1
2
3
4
5
template <typename function_call>
inline void set(const unsigned int value)
{
    function_call(_member, a);
}
dann geschickt mit std::bind1st, std::mem_fun gearbeitet, dann kannste es evtl. schaffen ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

6

25.10.2008, 09:04

oder per boost::lambda

sollte dann irgendwas wie sowas hier sein:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
template< typename OP >
inline void set(OP op, int a)
{
  op(_member,a);
} 

...

set((_1 += _2), 3)


wobei das in mir irgendwie n ungutes gefühl hervorruft :)

Werbeanzeige