Мне было интересно, знает ли кто-нибудь, какие ограничения существуют для оператора преобразования / преобразования типа?
Так, например, у меня могут быть следующие операторы переопределения:
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 ++.