Следующие компиляции в порядке:
#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
Все зависит от ваших намерений.