Мне было интересно, если кто-нибудь знает, какие ограничения находятся на операторе преобразования/типа?Существуют ли какие-либо ограничения на типы операторов-операторов?
Так, например, я могу иметь следующие операторы переопределения:
class Test {
operator int() { return 0; };
operator int*() { return nullptr; };
}
Для регулярной функции, я мог также иметь указатель на тип массива. Например.
int (*MyFunc())[4] { return nullptr; };
Однако, я не знаю, как сделать то же самое для оператора преобразования (или, если это даже законно сделать это). Я пробовал несколько разных вариантов и VS2010, и никто не работает. (Такие, как :)
operator int (*())[4] { return nullptr; };
operator int(*)[4]() { return nullptr; };
Я не уверен, если это ограничение в VS2010 или, если есть общий лимит на типах, которые могут быть использованы в операторе преобразования. Я пробовал искать стандартный онлайн без везения. Кто-нибудь знает? Прежде чем кто-нибудь спросит: «Почему бы вам это сделать?», Это для автоматически сгенерированного кода. Хотя я не ожидаю получения указателя на ввод массива, я хотел бы иметь возможность создавать код, если он является законным в C++.
Спасибо. Это точно ответил на мой вопрос. –
Комментарий Downvote? – GManNickG