Listing 3: Adaptive veneer: providing implicit conversion
template <typename T> class implicit_veneer : public S , is_veneer<S, implicit_veneer<S> > { public: typedef S parent_class_type; typedef typename S::value_type value_type; // Other methods, including constructors ... operator value_type const *() const { return parent_class_type::c_str(); } };