| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Konstrukt-Funktion für alte C-Strukturen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey Leute! Ich wollte mir gerade eine bequeme Funktion schreiben um auch C- structs als temporäre Objekte zu übergeben. ...
![]() |
| | #1 (permalink) |
| Registriert seit: 31.07.11 ![]() Likes: 1 | Anzeige Hey Leute! Ich wollte mir gerade eine bequeme Funktion schreiben um auch C-structs als temporäre Objekte zu übergeben. Bsp: Code: RectCollsion(rect_1,Construct<SDL_Rect>(50,50,10,10)); Code: template<typename T,typename... var_type_list> inline const T& Construct(var_type_list... var_list)
{
T ret_val = {var_list};
return ret_val;
} Leider lässt mein MinGW(4.6.1) das nicht durchgehen: Error Habt ihr schon mal eine elegante Lösung für sowas fabriziert ? ![]() Hier ein etwas uneleganter (und exe-aufblähender(?)) workaround: Code: #define CONSTRUCT(struct_name,...) \
([](void) \
{ \
struct_name ret_val = {__VA_ARGS__}; \
return ret_val; \
})(); nt0r
__________________ Nützt die Feder nichts , ist der Schreiber schuld ![]() Geändert von ntor (05.02.12 um 17:37 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 02.02.12 ![]() Likes: 0 | Hast Du diesen Workaround schon ausprobiert? |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 31.07.11 ![]() Likes: 1 | Bin ich jetzt blöd , oder hast du wirklich nichts geschrieben? nt0r
__________________ Nützt die Feder nichts , ist der Schreiber schuld ![]() |
| | |
| | #4 (permalink) |
| Registriert seit: 02.02.12 ![]() Likes: 0 | Also wenn Du mich fragst: Ich hab schon was geschrieben. Du nicht. Schau nochmal die Stelle an, wo Du Deine Template Funktion einsetzt. Wo sind denn die ganzen ints? |
| | |
| | #5 (permalink) | |
| Themenstarter Registriert seit: 31.07.11 ![]() Likes: 1 | Zitat:
Meintest du , ob ich meinem Workaround schon verwendet hab? Jo , hab ich. Und welche "ints" meinst du denn? Das soll schließlich eine allgemeine template-Funktion sein. Egal für welche structs. Wenn du nicht verstehst was ich mein , dann schau dir mal "std::bind" an. Die benutzt das gleiche Konzept und leitet es auf nen Functor zurück. Viele Grüße nt0r
__________________ Nützt die Feder nichts , ist der Schreiber schuld ![]() | |
| | |
| | #6 (permalink) |
| Registriert seit: 02.02.12 ![]() Likes: 0 | Construct<SDL_Rect, int, int, int, int>(50, etc. |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 31.07.11 ![]() Likes: 1 | Das frisst der Compiler doch automatisch via "decltype(50)". War afaik schon immer so Code: template<typename T> T Add(T a,T b)
{
return a + b;
} Code: Add(12,28); nt0r
__________________ Nützt die Feder nichts , ist der Schreiber schuld ![]() Geändert von ntor (06.02.12 um 22:00 Uhr) |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Funktion zum prüfen ob Funktion erlaubt ist | Chatter | (Web-) Design und webbasierte Sprachen | 5 | 21.01.07 14:11 |
| ?¤hm, und wo ist das alte board? | Marilyn | Hackerboard.de-Feedback | 6 | 03.10.06 01:47 |
| Neue Gefahr durch Bot-Netze mit P2P-Strukturen | jorey | News & Ankündigungen | 2 | 30.04.06 16:39 |
| Alte 2,5" HDD - was machen? | Case271 | Hardware Probleme | 4 | 15.10.04 15:47 |
| Alte Schlager | Sataan | Music- & Filmbox | 0 | 17.02.04 18:52 |