7 Stimmen

Bedingte Kompilierung mit Boost-Typ-Traits

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X