使用to_string时,如何删除红线


template<typename T, int>
class Array {
int x;
public:
Array() { }
int& operator [](int idx) { return idx; }
operator string() const { return "("string"s + to_string(x))"; }
};

int main((

Array<string, 10> a;
for (int i = 0; i < 10; ++i)
a[i] = "string"s + to_string(i);
for (int i = 0; i < 10; ++i)
cout << a[i] << endl;

一条红线在"字符串"的下面。我该如何删除它?

以下编译良好:

#include <string>
using namespace std;
template<typename T, int>
class Array {
int x;
public:
Array() { }
int& operator [](int idx) { return idx; }
operator string() const { return "string"s + to_string(x); }
};
int
main()
{
Array<bool, 42> a;
return 0;
}

我不得不改变:

"("string"s + to_string(x))"

"string"s + to_string(x)

或者可以是(如评论中所述(

"("s + to_string(x) + ")"s

这取决于你的意图。

相关内容

  • 没有找到相关文章

最新更新