boost::disable_if fehler



  • Ich bekomme bei folgender funktion einen Fehler wenn ich sie mit std::string aufrufe:

    template< typename T >
    T get( const std::string& name, typename boost::disable_if< boost::is_same< T, std::string > >::type* p = 0 )
    {
    }
    

    Fehler:

    error C2770: Ungültiges explizites Vorlagenargument(e) für 'T get(const std::string&,boost::disable_if<boost::is_same<ValueType,std::string>>::type *)'

    Die Beispiele in der boost doku sehen genauso aus, daher verstehe ich nicht was hier falsch sein soll, könnt ihr mich aufklären?

    Mein Compiler ist der vc7.1



  • Die richtige Fehlermeldung:

    error C2770: Ungültiges explizites Vorlagenargument(e) für 'T get(const std::string&,boost::disable_if<boost::is_same<T,std::string>>::type *)'



  • Hat sich erledigt, die spezialisierung für std::string hat einen const std::string& zurückgegeben statt by value wie der Rest.


Anmelden zum Antworten