0

標準文字列ビューの最後の文字を削除しようとしていますが、何をしてもそこに残ります。目的の「]」ではなく「/0」を誤って削除しているためだと思います。

これが私のコードです:

#include <iostream>
#include <tstr/tstring.h>
#include <cstring>

template<typename Class>
constexpr const char* to_string() {
    std::string_view str = __PRETTY_FUNCTION__;
    auto first = str.find("= ");
    auto last = str.find("]");
    auto str2 = str.substr(first + 2, last - first + 1);
    return str2.data();
}

class Foo {};

int main()
{
    std::cout << to_string<Foo>() << std::endl;
    return 0;
}

これは を出力しますFoo]。末尾の を削除するにはどうすればよい]ですか?

ありがとう。

4

1 に答える 1