Информация об изменениях

Сообщение Re[19]: Зачем плюс? от 28.11.2018 15:14

Изменено 28.11.2018 19:08 N. I.

Re[19]: Зачем плюс?
B0FEE664:

σ>>>>Для инициализации ссылок важен не только тип, но и value category.

BFE>>>Т.е. вы хотите сказать, что два объекта одного и того же типа не являются взаимозаменяемыми?
NI>>Сказанное выше относилось к выражениям, а не объектам.
BFE>А вопрос был про объекты, а не выражения.

Если речь про этот вопрос

Если n и +A::TIMEOUT имеют одинаковый тип, то почему мы имеем разницу в поведении?


то в данном случае разница имеет место быть из-за различия value category выражений n и +A::TIMEOUT. Кроме того, результату выражения +A::TIMEOUT вообще не соответствует никакой объект, это pure value.

NI>>В общем случае возможность инициализации ссылки неким инициализатором зависит от трёх характеристик выражения, используемого в качестве данного инициализатора: тип, value category и принадлежность к bit-field. Ни value category, ни принадлежность к bit-field не являются частью типа — это отдельные характеристики.

BFE>Отдельные характеристики чего?

Выражения (внимательно читай предшествующее предложение)

BFE>Указанные 'lvalue' и 'rvalue' не являются частью названия типа?


"lvalue reference" и "lvalue" — это разные понятия. Первое — это разновидность ссылок или ссылочный тип (в зависимости от контекста использования), второе — разновидность выражений.

BFE>Или lvalue reference — это не тип, а просто название ссылки?


В зависимости от контекста употребления, "lvalue reference" может означать как ссылочный тип (если речь идёт о типе), так и ссылку как сущность ссылочного типа.

BFE>Вот, например, вы пишите:

NI>>Например, lvalue reference to int можно инициализировать посредством non-bit-field lvalue of type int, но нельзя инициализировать посредством rvalue of type int или bit-field of type int:
BFE>"lvalue reference to int" — что это? Тип? Название? Категория?

В данном контексте это сущность, имеющая ссылочный тип. Как, по-твоему, можно инициализировать тип, название или категорию? Включи уже мозг, наконец...
Re[19]: Зачем плюс?
B0FEE664:

σ>>>>Для инициализации ссылок важен не только тип, но и value category.

BFE>>>Т.е. вы хотите сказать, что два объекта одного и того же типа не являются взаимозаменяемыми?
NI>>Сказанное выше относилось к выражениям, а не объектам.
BFE>А вопрос был про объекты, а не выражения.

Если речь про этот вопрос

Если n и +A::TIMEOUT имеют одинаковый тип, то почему мы имеем разницу в поведении?


то в данном случае разница имеет место быть из-за различия value category выражений n и +A::TIMEOUT.

NI>>В общем случае возможность инициализации ссылки неким инициализатором зависит от трёх характеристик выражения, используемого в качестве данного инициализатора: тип, value category и принадлежность к bit-field. Ни value category, ни принадлежность к bit-field не являются частью типа — это отдельные характеристики.

BFE>Отдельные характеристики чего?

Выражения (внимательно читай предшествующее предложение)

BFE>Указанные 'lvalue' и 'rvalue' не являются частью названия типа?


"lvalue reference" и "lvalue" — это разные понятия. Первое — это разновидность ссылок или ссылочный тип (в зависимости от контекста использования), второе — разновидность выражений.

BFE>Или lvalue reference — это не тип, а просто название ссылки?


В зависимости от контекста употребления, "lvalue reference" может означать как ссылочный тип (если речь идёт о типе), так и ссылку как сущность ссылочного типа.

BFE>Вот, например, вы пишите:

NI>>Например, lvalue reference to int можно инициализировать посредством non-bit-field lvalue of type int, но нельзя инициализировать посредством rvalue of type int или bit-field of type int:
BFE>"lvalue reference to int" — что это? Тип? Название? Категория?

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