Template specialiazion not used
===

I have the following functions defined:

    template <typename T> buffer_t &operator<<(buffer_t &buffer, T data);
    template <> buffer_t &operator<<(buffer_t &buffer, const char *data);
    template <> buffer_t &operator<<(buffer_t &buffer, const Glib::ustring &data);

When I call:

    buffer << Glib::ustring("hello");

The compiler uses the general template definition instead of the specialization with Glib::ustring.

What am I doing wrong here?