Сообщение Re[19]: Зачем плюс? от 28.11.2018 15:14
Изменено 28.11.2018 19:08 N. I.
Re[19]: Зачем плюс?
B0FEE664:
σ>>>>Для инициализации ссылок важен не только тип, но и value category.
BFE>>>Т.е. вы хотите сказать, что два объекта одного и того же типа не являются взаимозаменяемыми?
NI>>Сказанное выше относилось к выражениям, а не объектам.
BFE>А вопрос был про объекты, а не выражения.
Если речь про этот вопрос
то в данном случае разница имеет место быть из-за различия 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" — что это? Тип? Название? Категория?
В данном контексте это сущность, имеющая ссылочный тип. Как, по-твоему, можно инициализировать тип, название или категорию? Включи уже мозг, наконец...
σ>>>>Для инициализации ссылок важен не только тип, но и 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>А вопрос был про объекты, а не выражения.
Если речь про этот вопрос
то в данном случае разница имеет место быть из-за различия 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" — что это? Тип? Название? Категория?
В данном контексте это сущность, имеющая ссылочный тип. Как, по-твоему, можно инициализировать тип, название или категорию? Включи уже мозг, наконец...
σ>>>>Для инициализации ссылок важен не только тип, но и 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" — что это? Тип? Название? Категория?
В данном контексте это сущность, имеющая ссылочный тип. Как, по-твоему, можно инициализировать тип, название или категорию? Включи уже мозг, наконец...