char配列、char、std::stringの任意の組み合わせを連結する関数を書きました。メモリ確保を一回だけします。 C++17の畳み込み式で、全体の文字列長を計算しています。 #include <string> #include <cstring> #include <utility> std::size_t string_length(const std::string& s) noexcept { return s.size(); } std::size_t string_length(const char* s) noexcept { return std::strlen(s); } std::size_t string_length(char) noexcept { return 1; } template <class... Strings> std::string con