Ich habe eine Vorlage, die ich je nach Typ des Arguments bedingt kompilieren möchte. Ich kümmere mich nur um die Unterscheidung zwischen "Plain Old Data" (POD), d.h., Ganzzahlen, etc. oder Klassen/Strukturen. Ich verwende C++ VS2008 auf Windows.
template<T>
class foo
{
void bar(T do_something){
#if IS_POD<T>
do something for simple types
#else
do something for classes/structs
#endif
}}
Ich habe mir die Boost-Bibliotheken angesehen, und ich kann sehen, dass sie das zu haben scheinen, was ich will. Allerdings verstehe ich nicht, was die richtige Syntax für die #if
Aussage wäre.
Für jede Hilfe wären wir dankbar.
Bearbeiten --- Nachdem ich die Antworten gelesen habe, sehe ich, dass ich in meiner Definition der Frage etwas übersehen habe. Klasse foo
ist eine Vorlagenklasse, die nur die Version von bar
die korrekt ist für class type T
. Ich habe nach einer Lösung gesucht, die zur Kompilierzeit gelöst werden kann. Hoffentlich klärt dies mein Problem.