Хорошо, вот что я нашел
CXX0040 означает, что "The C expression evaluator does not support implicit conversions involving constructor calls.
"
CXX0047 означает, что "Overloaded functions can be called only if there is an exact parameter match or a match that does not require the construction of an object.
"
Объединение означает, что если я хочу вызвать функцию, ни один из аргументов не должен иметь неявного преобразования, и ни один из аргументов не должен нуждаться в конструкции.
«неявное преобразование» в этом контексте, по-видимому, включает тривиальные вещи, такие как преобразование 'String'
в 'const String&'
.
«конструкция», кажется, включает в себя тривиальное копирование. поэтому передача по значению всего, что не является примитивным типом, приведет к ошибке.
Таким образом, это в основном оставляет функции, которые принимают только примитивные типы или указатели.
Я только что успешно проверил эту теорию.
Поэтому, если вы хотите иметь возможность вызывать метод из окна наблюдения, добавьте перегрузку, которая принимает только указатели и примитивы, и в окне наблюдения передайте аргументы соответствующим образом. Чтобы передать объект, который не является примитивом, передайте его адрес.