Как я могу удалить красную линию, когда я использую to_string? - PullRequest
0 голосов
/ 26 марта 2020
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;

Красная строка находится под "строкой". как я могу удалить это?

1 Ответ

1 голос
/ 26 марта 2020

Следующие компиляции в порядке:

#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

Все зависит от ваших намерений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...