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

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

Страниц: 1 2 3 [4] 5 6   Вниз
  Печать  
Автор Тема: Scoped  (Прочитано 37970 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Конечно, поэтому вы и начали эту тему. Улыбающийся
Вовсе нет. Понятно что проблема типовая и стандартные решения должны быть. Но особого их удобства не наблюдаю. Чуть сэкономил на if'ах - потерял на typedef.

Видимо, на тот случай, если делитор будет что-нибудь возвращать) Правда я не понимаю для чего, а главное как igors будет использовать это возвращаемое значение  Непонимающий
Никак, если нужно то это все не годится. Предполагается что ф-ция удаления внешняя
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



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

Цитировать
Предполагается что ф-ция удаления внешняя
Тогда о каком дополнительном typedef идёт речь?
Вы боитесь лишней одной строчки, но всякий раз оправдываете написание своих (далеко не однострочных) велосипедов.. Мне не понятна ваша логика( И вообще, чего вы хотите..

И, кстати,  для случая с unique_ptr в принципе не обязательно определять typedef. Можно обойтись и без него..
Но готов поспорить, что вы всё равно свой костыль предпочтёте.. 

 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #47 : Июль 17, 2013, 14:10 »

Вы боитесь лишней одной строчки, но всякий раз оправдываете написание своих (далеко не однострочных) велосипедов.. Мне не понятна ваша логика( И вообще, чего вы хотите..
Не надо это так воспринимать. Велосипед! Костыль! Позор!!! В жизни все как раз наоборот. Даже open-source (которые я считаю крутыми) далеко не всегда используют конструкции std, хотя такая возможность есть. Как правило - свой vector, ref, mutex и.т.п. Однако критикующих грамотеев почему-то не видно  Улыбающийся

Возвращаясь к scoped - вполне возможно что std::unique_ptr делает все что нужно. Однако его использование провоцирует его изучение. И хз что он еше там делает, опять надо читать. Опасность в том что очень быстро это изучение засасывает, задача/работа отходит на второй поан, а то и вовсе болтитcя. Ведь это такой приятный процесс - становиться все умнее и умнее Улыбающийся  Поэтому видя текст густо усеянный std - возникают большие сомнения. Очень может быть писавший обладает огромными познаниями, но вот будет ли толк в задаче - хз (и даже скорее нет)
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

Опять бестолковое бла-бла-бла, человека который не хочет учиться. Уже сильно наскучило же.
« Последнее редактирование: Июль 17, 2013, 15:42 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #49 : Июль 17, 2013, 20:34 »

Опять бестолковое бла-бла-бла, человека который не хочет учиться. Уже сильно наскучило же.
Нет, это мнение чнловека который не хочет быть "попкой-запомналкой" Улыбающийся А если Вам наскучило - не лезьте с флудом
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #50 : Июль 17, 2013, 20:42 »

Нет, это мнение чнловека который не хочет быть "попкой-запомналкой" Улыбающийся А если Вам наскучило - не лезьте с флудом
Ага, вы попка-копипастер, который не может осилить примитивный инструмент, не говоря уже реализовать самому свой велосипед, и вынужденный везде в коде вставлять проверки и освобождалки ресурсов.
Хотя сами уже пришли к тому, что это не удобно, но осилить не смогли и сказали "Не надо".
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #51 : Июль 17, 2013, 21:37 »

Возвращаясь к scoped - вполне возможно что std::unique_ptr делает все что нужно. Однако его использование провоцирует его изучение. И хз что он еше там делает, опять надо читать. Опасность в том что очень быстро это изучение засасывает, задача/работа отходит на второй поан, а то и вовсе болтитcя.

Отличительная черта стандартной библиотеки - для того, что бы использовать её механизмы, не нужно вникать в подробности их реализации. Достаточно просто ознакомится с документацией:
http://en.cppreference.com/w/cpp/memory/unique_ptr

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

Отличительная черта стандартной библиотеки - для того, что бы использовать её механизмы, не нужно вникать в подробности их реализации. Достаточно просто ознакомится с документацией:
http://en.cppreference.com/w/cpp/memory/unique_ptr
Это бесполезно. Улыбающийся
Столько раз уже пробовали рассказать/объяснить... и на пальцах и так....
Все кто осилил стандартную библиотеку это "попки-запоминалки", а если еще и boost освоил... то все... это программист не умеющий думать. Улыбающийся
А вообще на этой планете есть только один программист, который думает... это конечно Igors. К сожалению, думать он может, только о том, как бы случайно чему не научиться. Улыбающийся

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

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


Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #53 : Июль 17, 2013, 22:23 »

Возвращаясь к scoped - вполне возможно что std::unique_ptr делает все что нужно. Однако его использование провоцирует его изучение. И хз что он еше там делает, опять надо читать. Опасность в том что очень быстро это изучение засасывает, задача/работа отходит на второй поан, а то и вовсе болтитcя.

Отличительная черта стандартной библиотеки - для того, что бы использовать её механизмы, не нужно вникать в подробности их реализации. Достаточно просто ознакомится с документацией:
http://en.cppreference.com/w/cpp/memory/unique_ptr



Вы, _Bers, из леса что ли вышли?) Сейчас не модно изучать документацию, думать над архитектурой (слово архитектура лучше вообще не произносить), забивать голову всякими патернами, бустами и т.д.. "Всё это требует и провоцирует изучения" (с)..

А, как недавно показали научные исследования, проведённые в Оксфордском,  Принстонском и независимо в Гарвардском университетах,  
человеческий мозг существенно ограничен в способности вмещать в себя новую информацию и опыт(
Так что, любое развитие, и изучение чего то нового с неизбежностью приводит к коллапсу творческого потенциала личности..  

Такие дела(

  
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #54 : Июль 18, 2013, 10:58 »

Отличительная черта стандартной библиотеки - для того, что бы использовать её механизмы, не нужно вникать в подробности их реализации. Достаточно просто ознакомится с документацией:
http://en.cppreference.com/w/cpp/memory/unique_ptr
Так я ее давно прочитал - и даже видел раньше. Но вот почеиу я обязан именно ее использовать (иначе "ни разу не гоамотный") - хз. Разве это решение самое лучшее, удобное? Мне кажется что нет.

..думать над архитектурой (слово архитектура лучше вообще не произносить),
Вам да, т.к. вся Ваша архитектура сводится к изысканию классов - главное чтобы было std:: или boost:: остальное совершенно неважно  Улыбающийся
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #55 : Июль 19, 2013, 01:47 »

Вы, _Bers, из леса что ли вышли?) Сейчас не модно изучать документацию

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

Так я ее давно прочитал - и даже видел раньше. Но вот почеиу я обязан именно ее использовать (иначе "ни разу не гоамотный") - хз. Разве это решение самое лучшее, удобное? Мне кажется что нет.

Если не хотите - не используйте.

Лично меня разочаровали стандартные смарт_поинтеры, когда я понял, что они без какой либо корректировки вошли в состав стандартной библиотеки "как есть". Я полагаю их красноречивым примером ущербного дизайна.

Однако, несмотря на это, я не стал бы внедрять в проект собственный велосипед, даже если бы полагал его более качественным с точки зрения дизайна.

Потому что:
1. Я бы предпочел потратить лишние несколько минут на ознакомление с документацией, чем целую неделю на создание собственного велосипеда, а потом  ещё и на отладку то и дело проявляющихся ошибок.

2. Использование готовых решений экономит время и деньги на разработку и сопровождение.

Но когда я ещё только осваивал язык с++, то, конечно, много велосипедил, что бы получить представление о том, "как это все может быть устроенно внутри".
« Последнее редактирование: Июль 19, 2013, 02:00 от _Bers » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #56 : Июль 19, 2013, 07:27 »

Лично меня разочаровали стандартные смарт_поинтеры, когда я понял, что они без какой либо корректировки вошли в состав стандартной библиотеки "как есть". Я полагаю их красноречивым примером ущербного дизайна.
Предлагаю это обсудить. Интересно, какой дизайн вам кажется удобным или что бы вы поменяли.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #57 : Июль 19, 2013, 09:35 »

Потому что:
1. Я бы предпочел потратить лишние несколько минут на ознакомление с документацией, чем целую неделю на создание собственного велосипеда, а потом  ещё и на отладку то и дело проявляющихся ошибок.

2. Использование готовых решений экономит время и деньги на разработку и сопровождение.
Именно эти аргументы чаще всего приводятся, и при этом упорно указывается на что-то типа "целой недели". Однако посмотрим хоть на эту тему. Какая неделя? Наоборот, написать свой микро-класс - действительно неск минут. А вот рыскать искать - куда дольше, да и результат наверное хуже. Др дело напр писать свое красно-черное дерево - ну так я таких велосипедов и не предлвгвл.

Но когда я ещё только осваивал язык с++, то, конечно, много велосипедил, что бы получить представление о том, "как это все может быть устроенно внутри".
Если сами повелосипедили - не грех и воспользоваться. Но плохо когда готовые решения юзаются без всякой критики/осмысления, только на основании "за меня все сделали".
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #58 : Июль 19, 2013, 09:55 »

А вот рыскать искать - куда дольше, да и результат наверное хуже.
Вы постоянно забываете, что искать и рыскать нужно вам, а другие это уже знают: для них воспользоваться готовым дело одной секунды. С другой стороны, написать примитивный класс, как показала эта тема, не для всех легко и просто.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Вы постоянно забываете, что искать и рыскать нужно вам, а другие это уже знают: для них воспользоваться готовым дело одной секунды.
Допустим, и что
Код
C++ (Qt)
typedef void (*DestroyFunc)(OpaqueRef);
std::unique_ptr<OpaqueRef, DestroyFunc> p(CreateOpaqueRef(name), DestroyOpaqueRef);
 
Вы считаете это очень удобным? И использование совсем не блещет
Код
C++ (Qt)
void DoSomething( OpaqueRef * );
..
DoSomething(p);   // а так нельзя
DoSomething(p.get());   // можно так
DoSomething(& *p);   // хммм...
 
И что я имею с такой великой мудрости? Так, без нужды загвдил текст - и все
Записан
Страниц: 1 2 3 [4] 5 6   Вверх
  Печать  
 
Перейти в:  


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