Frage zu boost::tokenizer



  • Hi,

    typedef boost::tokenizer< boost::char_separator<char> > Tokenizer;
    //...
    void Tokenize(Tokenizer* tok) {
        if (tok && CallBack) {
            for (Tokenizer::iterator tok_iter = tok->begin(); tok_iter != tok->end(); ++tok_iter) {
                CallBack(*tok_iter); //<- Fehler
            }
        }
    }
    

    CallBack benötigt ein *char als Argument, ich habe keine Möglichkeit dies zu ändern.
    Wie bekomm ich aus dem *tok_iter einen std::string oder gleich ein *char?

    Danke im voraus...



  • Also wenn das die richtige Vorgehensweise ist,wie du das da machst, dann nimm doch einfach einen Cast. (static_cast<char*>(*tok_iter) )



  • Dann bekomme ich das hier:

    error: invalid static_cast from type const std::basic\_string<char, std::char_traits<char>, std::allocator<char> >' to typechar*'

    EDIT: Habs geschafft mit:

    &(*tok_iter->c_str())
    

    und der Änderung in const char*.

    Trotzdem Danke 🙂


Anmelden zum Antworten