Влиять на автоматическое вычитание типа - PullRequest
4 голосов
/ 19 мая 2011

Допустим, я пишу функцию, которая возвращает некоторый прокси-объект, скажем, для ленивой оценки или для какой-то другой цели.Если я напишу код, подобный

auto x = func();

, тогда x будет типом возвращаемого значения - , а не тип объекта, который я хотел проксировать.Можно ли изменить auto или decltype, чтобы при их использовании в этой ситуации возвращался фактический результат, который я хочу получить, а не тип самого прокси-объекта?

Ответы [ 2 ]

3 голосов
/ 19 мая 2011

Случайные мысли:

Вы можете получить тип проксируемого объекта, используя decltype(*func()), или же получить доступ к прокси-объекту.Нет никаких модификаторов auto, кроме обычных const, & и т. Д.

Если это ленивая оценка, вам, вероятно, сейчас не нужен конечный тип объекта, не так ли??

Если у прокси есть оператор кенверсии конечного объекта, как auto узнает, что его следует использовать?Что если их больше одного?

0 голосов
/ 19 июля 2011

Почему бы не набрать тип внутри func() на то, что вы хотите при возврате?

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