Здравствуйте, T4r4sB, Вы писали:
BFE>>Наконец-то можно возвращать структуры определённые внутри, а не вне функции: TB>Можно? А в какой именно не-сырой версии Студии?
Согласно стандарту — можно, а вот на практике...
Мы только недавно на С++11 перешли.
Здравствуйте, B0FEE664, Вы писали:
BFE>Не знаю как вам, а мне часто хочется написать функцию возвращающую код ошибки осмысленным текстом: BFE>... BFE>Идеальным решением для меня было бы такое: BFE>[ccode] BFE>... BFE>Но так по стандарту нельзя. Зато можно внести enum внутрь функции. BFE>... BFE>Тоже самое касается и, например, std::pair, как результата функции. Вечно забываю, где ключ, а где данное. Теперь можно писать:
Полностью согласен, не вижу смысла пытаться запихнуть всё в error_code/pair/tuple и т.п. — обычная структура/enum удобнее.
Разве что бывают случаи где pair/tuple оправданны за счёт того что дают обход полей/операторы сравнения/и т.п., и то это только пока нет compile-time reflection. Либо как промежуточные результаты работы обобщённого/МП кода.
Здравствуйте, B0FEE664, Вы писали:
BFE>>>Наконец-то можно возвращать структуры определённые внутри, а не вне функции: V>>А в чём трюк то заключается? BFE>Не знаю как вам, а мне часто хочется написать функцию возвращающую код ошибки осмысленным текстом:
Я к тому это, что сообщения с префиксом [trick] здесь пишут, если в коде имеется действительно какой-то трюк или хинт с кодом, чтобы добиться желаемого. Но в приведённом тобой коде я трюков никаких не увидел, зато увидел применение обычного синтаксиса поддерживаемого самим языком. Это не является трюком.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Я к тому это, что сообщения с префиксом [trick] здесь пишут, если в коде имеется действительно какой-то трюк или хинт с кодом, чтобы добиться желаемого. Но в приведённом тобой коде я трюков никаких не увидел, зато увидел применение обычного синтаксиса поддерживаемого самим языком. Это не является трюком.
Вот ты зануда
для меня, например, трюк — не сталкивался с таким и не подумал, какие горизонты откроет auto в типе возвращаемого значения
Здравствуйте, enji, Вы писали:
V>>Я к тому это, что сообщения с префиксом [trick] здесь пишут, если в коде имеется действительно какой-то трюк или хинт с кодом, чтобы добиться желаемого. Но в приведённом тобой коде я трюков никаких не увидел, зато увидел применение обычного синтаксиса поддерживаемого самим языком. Это не является трюком. E>Вот ты зануда E>для меня, например, трюк — не сталкивался с таким и не подумал, какие горизонты откроет auto в типе возвращаемого значения
неименованые структуры и раньше можно было тайпдефить, ауто и раньше в разные типы превращалось, — не понятно в чём открытие.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>неименованые структуры и раньше можно было тайпдефить, ауто и раньше в разные типы превращалось, — не понятно в чём открытие.
а при чем тут неименованные структуры? Просто не додумался, что можно вернуть объект локального типа
Здравствуйте, Vain, Вы писали:
V>Я к тому это, что сообщения с префиксом [trick] здесь пишут, если в коде имеется действительно какой-то трюк или хинт с кодом, чтобы добиться желаемого. Но в приведённом тобой коде я трюков никаких не увидел, зато увидел применение обычного синтаксиса поддерживаемого самим языком. Это не является трюком.
Я рад, что вы так говорите. Значит тут с внешним и внутренним связыванием всё ок? Да?
Здравствуйте, enji, Вы писали:
V>>неименованые структуры и раньше можно было тайпдефить, ауто и раньше в разные типы превращалось, — не понятно в чём открытие. E>а при чем тут неименованные структуры?
именно для них запрет был
E>Просто не додумался, что можно вернуть объект локального типа
а вот это уже трюк, только наоборот
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>>>неименованые структуры и раньше можно было тайпдефить, ауто и раньше в разные типы превращалось, — не понятно в чём открытие. E>>а при чем тут неименованные структуры? V>именно для них запрет был
Где? Не было такого запрета. Был и остаётся запрет на определение типа в описании функции.
Кстати:
auto fun3()
{
struct { int m_a; int m_b; } t;
t.m_a = 1;
t.m_b = 2;
return t;
}
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, Vain, Вы писали:
V>>именно для них запрет был BFE>Где? Не было такого запрета. Был и остаётся запрет на определение типа в описании функции.
Возможно не запрет, а просто проблемы в компиляторах. Сейчас уже не помню, но приходилось добавлять имя чтобы компилировалось нормально.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, B0FEE664, Вы писали:
V>>Я к тому это, что сообщения с префиксом [trick] здесь пишут, если в коде имеется действительно какой-то трюк или хинт с кодом, чтобы добиться желаемого. Но в приведённом тобой коде я трюков никаких не увидел, зато увидел применение обычного синтаксиса поддерживаемого самим языком. Это не является трюком. BFE>Я рад, что вы так говорите. Значит тут с внешним и внутренним связыванием всё ок? Да?
Не вижу связи, причём здесь это?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, UA, Вы писали:
BFE>>Наконец-то можно возвращать структуры определённые внутри, а не вне функции: UA>Зачем вообще что то объявлять? UA>Делали бы так: UA>