Drop the "smart", and again consider returning the std::string.