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();
}
};