basic_stringConstructor with a character pointer not explicit:
basic_string( const CharT* s, Allocator& alloc = Allocator() );
This means that providing a char pointer to a function that accepts stringimplicitly creates a string and passes it to the function.
StringBuilder , , string StringBuilder, , string , StringBuilder , .
EDIT: @Revolver_Ocelot, (StringBuilder(const char*)) , . ++ 11, , private, ():
class StringBuilder
{
public:
explicit StringBuilder(const std::string& s) {}
StringBuilder(const char*) = delete;
private:
StringBuilder(const char*);
};