Russian Qt Forum
Ноябрь 26, 2024, 01:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Протаскивание большой структуры через череду return  (Прочитано 10305 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Июль 12, 2016, 12:57 »

Например, как то так:
Это ваша идея, сейчас так нельзя. Улыбающийся

Я лишь не разделяю мнение, что возврат структуры по не константной ссылке хорошее решение. Улыбающийся
Хотя, сам иногда его использую. Я бы сказал, что это просто, но не хорошо. Улыбающийся
« Последнее редактирование: Июль 12, 2016, 13:06 от Old » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #16 : Июль 12, 2016, 13:07 »

Конечно, но это идея не моя, а товарища Вирта и компании, которые придумали Паскаль в 1970 Подмигивающий
И, честно говоря, я не услышал, почему это хуже, чем еще один типа конструктора Непонимающий

Offtop: Я слышал несколько раз мнения людей, которые довольно глубоко связаны с C++ и новым стандартов, по поводу новшеств - и они говорят, что язык просто искуственно подготавливают к вымиранию, т.к. в итоге он превратится в неподдерживаемую кашу и возникнет необходимость более гибкой и прозрачной, но в то же время производительной альтернативы.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #17 : Июль 12, 2016, 13:17 »

И, честно говоря, я не услышал, почему это хуже, чем еще один типа конструктора Непонимающий
Если вы про свою идею, то я пока не очень ее обдумывал, что бы сформировалось мнение. Если вы про возврат через ссылку, то я выше привел пример.

Offtop: Я слышал несколько раз мнения людей, которые довольно глубоко связаны с C++ и новым стандартов, по поводу новшеств - и они говорят, что язык просто искуственно подготавливают к вымиранию, т.к. в итоге он превратится в неподдерживаемую кашу и возникнет необходимость более гибкой и прозрачной, но в то же время производительной альтернативы.
Каждый имеет право на свое мнение. Сколько людей - столько и мнений. Улыбающийся
Я тоже не использую все, что появилось в новом стандарте. Что то у меня прижилось, что-то нет. Но я не считаю, что все что у меня не прижилось - фигня, которую нужно срочно из стандарта убирать. Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #18 : Июль 12, 2016, 14:34 »

Если вы про возврат через ссылку, то я выше привел пример.

А чем приведенный пример противоречит идее возврата через ссылку?
Я привел вариант, как это могло бы быть использовано Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #19 : Июль 12, 2016, 14:48 »

А чем приведенный пример противоречит идее возврата через ссылку?
Я привел вариант, как это могло бы быть использовано Улыбающийся
Тем, что могут быть классы, объекты которых не удастся создать в вызывающей функции.  Строит глазки
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #20 : Июль 13, 2016, 08:47 »

std::move семантика предназначена не только для оптимизации возврата значений из методов, для языка программирования она имеет больше фундаментальное значение, связанное с модельным понятием агрегации (это очень большая тема, поэтому не буду расписывать). Развитие семантики связано с объективными причинами ограниченности языка, каждое нововведение имеет теоретическое и практическое обоснование. Если разработчик считает, что оно ему не надо, то он может их и не использовать.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #21 : Июль 13, 2016, 10:34 »

std::move семантика предназначена не только для оптимизации возврата значений из методов, для языка программирования она имеет больше фундаментальное значение, связанное с модельным понятием агрегации (это очень большая тема, поэтому не буду расписывать). Развитие семантики связано с объективными причинами ограниченности языка, каждое нововведение имеет теоретическое и практическое обоснование. Если разработчик считает, что оно ему не надо, то он может их и не использовать.

Обосновать при желании можно все, даже goto Улыбающийся
Любой костыль можно объявить фичей и пропихнуть в стандарт, но костылем от этого оно быть не перестанет.
Думайте проще - разработчику надо решить задачу с минимальными затратами в минимальный срок, причем другие разработчики должны понять потом, что же было сделано. Итого - чем проще и прозрачнее синтаксис - тем лучше. Sugar на то и sugar Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #22 : Июль 13, 2016, 10:35 »

Тем, что могут быть классы, объекты которых не удастся создать в вызывающей функции.  Строит глазки

Но я же, вроде, написал, как можно бы было это обойти Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.105 секунд. Запросов: 23.