Tag: variadic-macros
Variadic Makros sind eine Funktion der C-Präprozessor, die es erlauben, eine variable Anzahl von Argumenten zu einem makro. Sie Hinzugefügt wurden 1999 in der überarbeitung der C-standard.
3
Antworten
Ist es möglich, default-Argumente, bevor die variable argument in variadischen makro? e.g ich habe die version von makro-so etwas wie #define MACRO(arg1, ...) func(arg1, ##__VA_ARGS__) Möchte ich hinzufügen, 2 weitere Standard-Argumente in der makro vor der variable
2
Antworten
Ich versuche zu generieren, die Funktionsdeklaration mit einem makro /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA
2
Antworten
Also ich hab ein makro, das funktioniert gut in GCC, aber nicht in Microsoft C++ Compiler. Ich hoffe jemand weiß vielleicht eine Abhilfe, oder vielleicht können Sie mir erklären, warum es auf diese Weise verhält. Ich bin
5
Antworten
Wie funktioniert diese Arbeit? Wie kann ein C99/C++11 variadic Makros realisiert werden zu erweitern, um verschiedene Dinge, die allein auf der Grundlage, wie viele Argumente gegeben werden? Nicht beantworten wie es funktioniert, aber wenn es jemand braucht
2
Antworten
Einer typischen LOG () - makro-basierte logging-Lösung kann wie folgt Aussehen: #define LOG(msg) \ std::cout << __FILE__ << "(" << __LINE__ << "): " << msg << std::endl Dies ermöglicht es Programmierern, Daten reichen die Nachrichten über
3
Antworten
Was ist der trick zum erstellen einer variadischen makro FOO(a1, a2, a3,..., an) so dass es erweitert, um FOOn(a1, a2, a3,..., an) für Werte von n in was auch immer vorausgewählt eingegrenzten Bereich, den Sie wählen? Das
9
Antworten
Soweit ich weiß, in gcc kannst du etwas schreiben wie: #define DBGPRINT(fmt...) printf(fmt); Gibt es eine Möglichkeit, das zu tun, VC++? InformationsquelleAutor der Frage Domo | 2008-09-15
6
Antworten
Arbeite ich an einem call makro, #define CALL(f,...) FN(f)->call((ref(new LinkedList()), __VA_ARGS__)) die, wenn Sie aufgerufen, CALL(print,2,3,4,5); fügt 2 3 4 5 zu der verlinkten Liste (ist überlastet) und Aufrufe drucken, die erwartet, dass eine verknüpfte Liste, die
3
Antworten
Betrachten Sie diesen code: #define F(x, ...) X = x and VA_ARGS = __VA_ARGS__ #define G(...) F(__VA_ARGS__) F(1, 2, 3) G(1, 2, 3) Die erwartete Ausgabe ist X = 1 and VA_ARGS = 2, 3 für beide
7
Antworten
Es ist ein bekannt problem mit leeren Argumente für variadic Makros in C99. Beispiel: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Den Einsatz von BAR() oben ist in der Tat falsch,
9
Antworten
Einfache Frage, für die ich nicht finden konnten, eine Antwort auf die net. In variadic-argument-Makros, wie man die Anzahl der Argumente? Ich bin okay mit boost-Präprozessor, wenn es die Lösung. Ob es einen Unterschied macht, ich bin
4
Antworten
Für debugbuilds, die ich normalerweise benutze Clang, wie Sie formatiert Warnungen und Fehler besser und macht es ein wenig einfacher, um Sie aufzuspüren und zu lösen. Aber vor kurzem, nach dem hinzufügen einer Makro mit Variable Argumente,