Präprozessor-makro Erweiterung auf einen anderen Präprozessor-Direktive

Anfangs dachte ich, ich brauchte, aber schließlich bin ich es vermieden. Aber meine Neugier (und Appetit auf wissen, hum), lassen mich Fragen:

Kann ein Präprozessor-makro, zum Beispiel in

#include "MyClass.h"

INSTANTIATE_FOO_TEMPLATE_CLASS(MyClass)

erweitern Sie zu einem anderen gehören, wie in

#include "MyClass.h"

#include "FooTemplate.h"
template class FooTemplate<MyClass>;

?

  • Eines Tages werden Sie wollen, überweisen Sie Ihre code, um ein OS wie Linux, wo Fall ist bedeutsam (z.B. Foo.h und foo.h sind zwei verschiedene Dateien) und dann die ganzen Rechtschreibfehler, die sind nicht gefangen, die auf Windows kommen nach Hause zum roost. alternativ, wenn Sie ein Linux-Mensch, Sie wird eines Tages wollen den anderen Weg gehen, mit verschiedenen, aber gleichermaßen schreckliche Probleme.
  • Ich Stimme mit der immer-und-Kleinschreibung-Regel für die Datei-Namen. Ich schrieb, dass diese Weg ist, weil ich wollte ausschließen, das Problem klein-Konvertierung (Klasse name -> Datei-Namen). Aber das ist es Wert zu erwähnen, danke. +1!
  • Unsere Regel ist, dass die Dateinamen exakt mit der Namensgebung für unsere Arten und Funktionen. Wir tun genau so, wie der Fragesteller hier, ein Typ namens FooType wird definiert, in FooType.h. Wie bei jeder "Stil" - Richtlinie, wählen Sie einen Stil und bleiben Sie dabei. Having said, die wir entwickeln, stark auf linux und so ist diese Regel automatisch, erzwungen, die für uns durch das OS....hmmmmm.....
  • Ok. Das war ein Fehler. Ich mag es nicht uppercases im Datei-Namen, aber ich mag uppercases bei Typ-Namen. Aber ich sollte geschrieben haben, klein-einfach für die Frage. @Richard Corden: Mit dem Dateisystem und der compiler die Durchsetzung der Regel kann vorübergehend sein, und jeden port zu anderen OSs-löscht völlig diese Sicherheit. Zumindest in einem totalitären Kleinbuchstaben Dateinamen Regel, riskantes Verhalten und Fehler werden sofort sichtbar, bevor irgendein problem aufgetreten ist. Was ich bevorzuge.
  • Über dieses denken ein bisschen mehr, dabei ist mir aufgefallen, dass egal was Sie tun (Kleinschreibung oder gemischter groß-und Kleinschreibung Inhalt), es wird umgesetzt werden müssen, die von einigen externen Dienstprogramm. Es gibt immer die chance, dass jemand einen Fehler machen, und es sei denn, Sie haben die OS-Unterstützung (wie in meinem Fall) dann haben Sie, um dies zu überprüfen per script/tool. Es ist einfacher zu überprüfen, für alle unteren Fall - aber es ist nicht so schwierig, um zu überprüfen, dass der name mit mindestens einem Bezeichner in der Datei entweder. < blatent-Stecker > Und Sie kann sogar eine statische Analyse-tool, das die Arbeit für Sie übernimmt!!! 😉 < / blatent-Stecker >.
InformationsquelleAutor moala | 2009-08-11
Schreibe einen Kommentar