Аргумент шаблона для оператора преобразования шаблонаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Аргумент шаблона для оператора преобразования шаблона

Сообщение Anonymous »

Рассмотрим следующий пример: < /p>

Код: Выделить всё

struct S {
template< typename T >
operator T () {
std::cout 
Из моего чтения стандарта i get t = const int < /code>.
Но GCC и Clang говорят, что T будет иметь тип int < /code>. < /p>
from [temp.deduct.conv]: < /p>

 

 Если A-CV-квалифицированный тип, то верхний уровень CV-квалификаторов типа A игнорируется для вычета типа.
, если a-тип ссылки, тип, упоминаемый A A, используется для вычета типа.  не CV-квалифицирован. Затем, во -вторых,  является ссылочным типом, и поэтому I Remove &  из  и получить выведен a = const int . 
Теперь я сравнивал выведен A = const int  с t  и получить t = const int . 
 obster 

Подробнее здесь: [url]https://stackoverflow.com/questions/79753825/template-argument-deduction-for-templated-conversion-operator[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»