Универсальный класс C ++ \ CLI с методом, возвращающим косвенность к параметру универсального типа - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть универсальный класс, написанный на C ++ \ CLI, который содержит метод, возвращающий экземпляр параметра универсального типа:

generic<typename TWidget> public ref class Factory abstract
{
    public:
       virtual TWidget^ MakeWidget() abstract;
}

Мой универсальный тип (TWidget) будет ссылочным типом, и поэтому я хочу, чтобы мой метод (MakeWidget) возвращал косвенное отношение к типу. Компиляция завершается с ошибкой

ошибка C3229: 'TWidget ^': недопустимы косвенные ссылки на параметр универсального типа

Конечно, это не необычный сценарий; я что-то неправильно понимаю? (вполне возможно, так как я редко использую этот язык).

Любые предложения о том, как я могу успокоить компилятор и достичь желаемого результата?

1 Ответ

2 голосов
/ 09 августа 2012

Поскольку ваш тип TWidget уже является ссылочным типом, и на самом деле компилятор заставит вас сделать это, вы можете просто определить возвращение MakeWidget как TWidget.

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