namespace stlsoft
{
template <typename T>
struct string_access_traits
{
static typename T::value_type const *c_str(T const &s)
{
return s.c_str();
}
static size_t length(T const &s)
{
return s.length();
}
};
template <>
struct string_access_traits<char const *>
{
static char const *c_str(char const *s)
{
return s;
}
static size_t length(char const *s)
{
return strlen(s);
}
};
}