一些(很多?)程序员被介绍给两者std::string_view
并std::string
问自己:“为什么我可以将后者转换为前者,而不是反过来呢?”
问题的一部分在这里得到了回答:
为什么没有从 std::string_view 到 std::string 的隐式转换?
一个人可以喜欢或不喜欢的原因。但是 -显式构造函数呢?我在 cppreference.com的std::string
构造函数页面上没有看到一个?
对有关隐式构造函数的问题的两个答案基本上都表明隐式构造函数会导致内存分配和内存复制,而程序员并不清楚这一点。好的,好吧,使用显式构造函数 - 程序员确实想要分配和复制。为什么不给他/她呢?