Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> имена переменных, какого стиля вы придерживаетесь 
:(
    Опции темы
 
какого стиля вы придерживаетесь при создании переменных?
все строчными разделенное знаком подчеркивания (max_len) [ 9 ]  [22.50%]
разделение заглавными (GetMaxLen или getMaxLen) [ 30 ]  [75.00%]
смешаный (Get_Max_Len) [ 1 ]  [2.50%]
я не заморачиваюсь, одной или двух букв всегда хватает [ 0 ]  [0.00%]
Всего проголосовавших: 40
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
fish9370
Дата 17.7.2011, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



тема взята из соседнего поста, показалась интересной..

пишите, кто какой стиль предпочитает и как он придумывает названия именам переменных..
пользуется ли кто-то еще транслитом?



--------------------
undefined
PM MAIL WWW ICQ   Вверх
Сыроежка
Дата 17.7.2011, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Во-первых, стиль программирования порой диктуется уже той средой, в которой вы программируете, как, например, имеет место в Windows или MFC.

Обычно в проектах польуются одновременно разными стилями названия переменных. Например, один программист для одной переменной может использовать подчеркивание для разделения слов в идентификаторе, в то время как для другого идентификатора порой проще объединить два слова в одно без всяких разделителей. Кроме того, есть переменные, которые обозначают флаги. Обюычно они пишутся в венгерской нотации. Кроме того для простых функций или простых объектов можно вообще использовать одну букву для имени переменной, как, например, s - для символьного массива, p - для указателя, а n - для целочисленного значения и т.д. Иногда для простыты имя переменной состоит лишь из двух символов, которые означают названия слов.

Например, имеется тип данных REQUEST HEADER. Для переменной этого типа в одном проекте использовалась имя rh. И поверьте, это было лучшее имя, которое можно придумать для переменной этого типа!smile

На самом деле для больших проектов главное, чтобы одни и те же объекты в разных модулях обозначались одними и теми же именами переменных.. 

Это сообщение отредактировал(а) Сыроежка - 17.7.2011, 20:19
PM MAIL   Вверх
azesmcar
Дата 18.7.2011, 07:44 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Сыроежка @  17.7.2011,  20:17 Найти цитируемый пост)
Например, имеется тип данных REQUEST HEADER. Для переменной этого типа в одном проекте использовалась имя rh. И поверьте, это было лучшее имя, которое можно придумать для переменной этого типа!

Не верю © smile 

PM   Вверх
Earnest
Дата 18.7.2011, 09:34 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Странные какие-то ответы, не то что не исчерпывающие, но вообще винегрет. Именование переменных - часть стиля; он обычно корпоративный, так удобнее работать. Я для своей команды сделала документ, компиляцию из какого-то распространенного англоязычного источника и своих домыслов. Транслит запрещен, ибо меня от него колбасит.
До сих пор вспоминаю яркий образец вида - чью-то процедуру на Фортране с именем OBLOPR, что означало "область определения". smile 


--------------------
...
PM   Вверх
k0rvin
Дата 18.7.2011, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(Earnest @ 18.7.2011,  09:34)
Транслит запрещен, ибо меня от него колбасит.

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


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
fish9370
Дата 18.7.2011, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(Earnest @  18.7.2011,  09:34 Найти цитируемый пост)
Странные какие-то ответы, не то что не исчерпывающие, но вообще винегрет. Именование переменных - часть стиля; он обычно корпоративный, так удобнее работать


Вы как женщина опытная (как я понял), должны понять, что речь идет о  стадии, когда проект только начинается, и Ваши предпочтения закладываются в корпоративный стиль.. 

кстати, по стилю, можно определить к какой "школе" человек относится.. как тут было правильно подмеченно, сразу видно где у него больше всего опыта, Linux, Windows, MFC и т.д.


Цитата(Сыроежка @  17.7.2011,  20:17 Найти цитируемый пост)
Например, имеется тип данных REQUEST HEADER. Для переменной этого типа в одном проекте использовалась имя rh


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

Добавлено @ 09:57
P.S. за транслит убил бы сразу..

Это сообщение отредактировал(а) fish9370 - 18.7.2011, 10:04


--------------------
undefined
PM MAIL WWW ICQ   Вверх
borisbn
Дата 18.7.2011, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(Сыроежка @  17.7.2011,  20:17 Найти цитируемый пост)
Во-первых, стиль программирования порой диктуется уже той средой, в которой вы программируете, как, например, имеет место в Windows или MFC.

Что есть, то есть. Правда за весь Windows я бы не говорил... Вот, например, когда мне нужна программа на чистом Си++ (STL, boost), то я и переменные_называю_с_подчеркиванием. Если в Qt лабаю - поВерблюжачиНазываю. А когда ещё с VCL работал (как вспомню - так вздрогну) все ТТипыНазвалВИхСтиле.

А по именованию - ну есть же правила
Цитата

типы и объекты - существительные
свойства объектов - прилагательные
функции, методы объектов - глаголы


Цитата(fish9370 @  17.7.2011,  20:03 Найти цитируемый пост)
пользуется ли кто-то еще транслитом?

Убил бы за vvod_massiva. Особенно весело смотрится транслитерация слова "файл" smile

P.S. Ещё нравится иногда встряхиваться smile
Код

struct Simpson { ... };
struct Homer : public Simpson { ... };
struct Bart : public Simpson { ... };
struct Lisa : public Simpson { ... };


такое, правда, нужно особенно тщательно документировать

Добавлено через 3 минуты и 28 секунд
Цитата(Earnest @  18.7.2011,  09:34 Найти цитируемый пост)
Я для своей команды сделала документ, компиляцию из какого-то распространенного англоязычного источника и своих домыслов

Не поделишься ? Распространять не собираюсь. Прошу для личного пользования


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Earnest
Дата 18.7.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Да ради бога. Исользуйте как хотите: это перевод одного из валяющихся в сети документов с моей редакцией.

Добавлено через 2 минуты и 58 секунд
Правде, время показало, что не все прижилось. Скажем, функции я именую в основном с большой буквы. Булевские переменные не начинаю с "is". Но это все мелочи. Нельзя вообще все зарегламентировать, должна быть некоторая свобода в соответствии с собственным вкусом.

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  C___Programming_Style_Guidelines.rar 15,23 Kb


--------------------
...
PM   Вверх
borisbn
Дата 18.7.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Earnest, спасибо. Где-то я это видел... О! вот тут.

Да ты собственно и не скрывала   smile  
Цитата(Earnest @  18.7.2011,  10:31 Найти цитируемый пост)
это перевод одного из валяющихся в сети документов с моей редакцией



Это сообщение отредактировал(а) borisbn - 18.7.2011, 10:45


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Qu1nt
Дата 18.7.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 1
Всего: 50



PM MAIL   Вверх
Earnest
Дата 18.7.2011, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(borisbn @  18.7.2011,  11:44 Найти цитируемый пост)
 Где-то я это видел... 

Ну да, я там честно сохранила копирайт.


--------------------
...
PM   Вверх
Сыроежка
Дата 18.7.2011, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(fish9370 @  18.7.2011,  09:56 Найти цитируемый пост)
действительно, часто встречаются очень удачные аббривиатуры (как в данном примере).. но мне кажется, что это хорошо, когда есть документация, чтобы человек со стороны как-то мог разобраться, что она значит..



Как я уже сказал, если одно и тоже имя используется для одного и того же объекта во всех модулях проекта, то документация не требуется.  Поэтому я и указал, что очень важно сохранять использование одного  и того же имени.

Более сложные проблемы возникают, когда вы пишите макросы. В них вы передаете идентификатор, а внтури макроса нужно создать другой идентификатор для подобного же объекта. Здесь тоже требуется некоторая система, так как порой могут возникнуть серьезные ошибки, что вы в макросе можете использовать имя, которое "закроет" собой имя переменной из основного кода.
PM MAIL   Вверх
fish9370
Дата 20.7.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(Сыроежка @  18.7.2011,  20:00 Найти цитируемый пост)
то документация не требуется


документация в любом случае нужна..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
borisbn
Дата 20.7.2011, 10:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



fish9370, ты не прав - по стандарту документировать ничего не требуется  smile 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Earnest
Дата 20.7.2011, 11:28 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(fish9370 @  20.7.2011,  11:36 Найти цитируемый пост)
документация в любом случае нужна.. 

Это сложный вопрос на самом деле. Документация к коду ИМХО не нужна (код должен быть самодокументирован, включая подробные комментарии к сложным местам, либо ссылки на первоисточники для неочевидных алгоритмов). "Стратегические" документы (типа функциональной спецификации на разработку конкретного модуля \ утилиты или   описание дизайна программы) очень желательны. К сожалению, поддерживать их в актуальном состоянии очень сложно...


--------------------
...
PM   Вверх
baldina
Дата 20.7.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата

какого стиля вы придерживаетесь при создании переменных?

бытие определяет сознание. жаль, что только один вариант ответа.
а что насчет смешения стилей? часто в одном проекте используются библиотеки с разными принципами именования. пример - MFC и STL. какой стиль выбрать? что делать (и нужно ли), что бы код смотрелся единообразно?
PM MAIL   Вверх
borisbn
Дата 20.7.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(Earnest @  20.7.2011,  11:28 Найти цитируемый пост)
код должен быть самодокументирован

 smile Был у нас один "программист" (сейчас уже уволился), который на полном серьёзе (не прикалываясь) писал такое:
Код

// Цикл по internal_cicle_counter от 0 до n-1
for ( int internal_cicle_counter = 0; internal_cicle_counter < n; internal_cicle_counter++ ) {
  // получаем указатель на структуру и т.д.
  SomeStruct * some_struct_pointer_for_foo_function_call = m_buffer[ internal_cicle_counter ].ptr;
  // вызываем функцию foo с параметром и т.п.
  foo( some_struct_pointer_for_foo_function_call );
}

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


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
fish9370
Дата 20.7.2011, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(Earnest @  20.7.2011,  11:28 Найти цитируемый пост)
Документация к коду ИМХО не нужна


Цитата(Earnest @  20.7.2011,  11:28 Найти цитируемый пост)
"Стратегические" документы (типа функциональной спецификации на разработку конкретного модуля \ утилиты или   описание дизайна программы) очень желательны


я не совсем понимаю, что такое документация к коду, мне кажется документация к коду это комменты (и они кстати тоже нужны)..
но то что ни один серьезный проект без документации не обходится - это безусловный факт.. я тут не вижу оснований для спора..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Earnest
Дата 20.7.2011, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(borisbn @  20.7.2011,  13:52 Найти цитируемый пост)
 И совсем без комментариев нельзя, и перегружать код лишними комментариями - тоже вредно. 

Разумеется, я не такие комментарии имела в виду. За такое нужно сразу убивать. Самодокументированность - это четкая логическая структура, ясные имена переменных и необходимый минимум комментариев.
Цитата(fish9370 @  20.7.2011,  13:56 Найти цитируемый пост)
я не совсем понимаю, что такое документация к коду

Я под этим понимаю описание классов и их функций. Типа функция XXX класса YYY делает то-то. Как отдельный документ. Считаю, что это лишняя трата времени - и того, кто пишет, и того, кто читает. Такого рода информация нужна только разработчикам, а они могут и код посмотреть (уж точно актуальную инфу получат). А если код в этом смысле написан плохо, то разумнее потратить время на его улучшение, чем не его же описание.
Разумеется, если продукт - не библиотека, предназначенная для внешнего распространения.



--------------------
...
PM   Вверх
azesmcar
Дата 21.7.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



borisbn

У нас не до такой степени, но все же комментарии, чаще встречающиеся в нашем кода
Код

// draw busy cursor
drawBusyCursor();



Это сообщение отредактировал(а) azesmcar - 21.7.2011, 20:38
PM   Вверх
toxx
Дата 21.7.2011, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 2
Всего: 13



borisbn,
azesmcar
Ктото из вас написал что коментарии нужны в самых сложных местах, тоже с этим согласен, в остальном должны быть интуитивно понятные названия методов и переменных.
А так, как я понял, стиль формируется в зависимости от конкретной команды и тимлидера(в соответствии с его стилем обычно пишут)
Поэтому считаю позицию Earnest верной по созданию дока со стилем.
PM MAIL   Вверх
borisbn
Дата 21.7.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(toxx @ 21.7.2011,  21:50)
borisbn,
azesmcar
Ктото из вас написал что коментарии нужны в самых сложных местах, тоже с этим согласен, в остальном должны быть интуитивно понятные названия методов и переменных.
А так, как я понял, стиль формируется в зависимости от конкретной команды и тимлидера(в соответствии с его стилем обычно пишут)
Поэтому считаю позицию Earnest верной по созданию дока со стилем.

ни тот, ни тот, а как раз Earnest:
Цитата(Earnest @  20.7.2011,  11:28 Найти цитируемый пост)
код должен быть самодокументирован, включая подробные комментарии к сложным местам


Это сообщение отредактировал(а) borisbn - 21.7.2011, 22:38


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 22.7.2011, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



мне очень не нравится Google's C++ style guide.
совсем случайно наткнулся на эту тему: http://stackoverflow.com/questions/5695082...nce-in-industry
радует что не мне одному он кажется нелепым. особенно запрет использовать исключения и обильно шаблоны... smile 
PM WWW   Вверх
fish9370
Дата 22.7.2011, 12:09 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  22.7.2011,  10:14 Найти цитируемый пост)
мне очень не нравится Google's C++ style guide.совсем случайно наткнулся на эту тему: http://stackoverflow.com/questions/5695082...nce-in-industryрадует что не мне одному он кажется нелепым. особенно запрет использовать исключения и обильно шаблоны...


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


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Earnest
Дата 22.7.2011, 12:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(fish9370 @  22.7.2011,  13:09 Найти цитируемый пост)
код упрощается, значит меньше ошибок..

Код упрощается? При неиспользовании исключений? Да ладно! Букв становится больше - ошибки-то все равно обрабатывать нужно. А больше букв - больше возможностей случайно напортачить.
Косяки могут возникнуть какие угодно и где угодно. Все зависит от квалификации кодеров. Нет способа защититься от кривых рук, кроме превентивного отстрела. Но как распознать кривые руки еще до того, как они успели нанести ущерб - вот вопрос... smile 


--------------------
...
PM   Вверх
fish9370
Дата 22.7.2011, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(Earnest @  22.7.2011,  12:25 Найти цитируемый пост)
Код упрощается? При неиспользовании исключений?


нет, при неиспользовании Си++
А здесь пошли на компромис, между чистым Си и Си++, код стал проще - меньше ошибок, со стороны "криворуких" кодеров..
криворуких взял в кавычки, так как сам язык к этому распологает, это кстати попытка сделать из них пряморуких.. 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 22.7.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(fish9370 @  22.7.2011,  14:17 Найти цитируемый пост)
при неиспользовании Си++

да ну ладно ;)
тебе уже не раз примеры приводили, что с++ код проще. главное иметь прямой моцг.

Цитата(fish9370 @  22.7.2011,  14:17 Найти цитируемый пост)
криворуких взял в кавычки, так как сам язык к этому распологает, это кстати попытка сделать из них пряморуких.

не-не-не! причина в моцге!

Добавлено через 4 минуты и 28 секунд
вот тебе еще парочка.
банальное получение списка элементов на ФС в текущем каталоге.
1.
Код

#include <boost/filesystem.hpp>
#include <iostream>
 
int main() {
   boost::filesystem::recursive_directory_iterator beg("."), end;
   for ( ; beg != end; ++beg ) {
      std::cout << *beg << std::endl;
   }
}

http://liveworkspace.org/code/840584682a73...df6c8cd75a70848

2.
Код

#include <boost/filesystem.hpp>
#include <iostream>
#include <algorithm>
 
void printer(const boost::filesystem::path& path) {
   std::cout << path << std::endl;
}
 
int main() {
   std::for_each(
      boost::filesystem::recursive_directory_iterator("."),
      boost::filesystem::recursive_directory_iterator(),
      printer
   );
}

http://liveworkspace.org/code/a137f45778dc...002ba5aeda118bd

3.
Код

#include <boost/filesystem.hpp>
#include <iostream>
#include <algorithm>
#include <vector>
 
void printer(const boost::filesystem::path& path) {
   std::cout << path << std::endl;
}
 
int main() {
   std::vector<boost::filesystem::path> list(
      boost::filesystem::recursive_directory_iterator("."),
      boost::filesystem::recursive_directory_iterator()
   );
   
   std::for_each(std::begin(list), std::end(list), printer);
}

http://liveworkspace.org/code/457efd76e5d4...38034951d1668eb


покажи Си`шный эквивалент ;)

Добавлено через 8 минут и 26 секунд
вдобавок: с++, с++су рознь.
ибо даже в Qt("Си с классами" (с) я) это сделано криво.
Код

QDirIterator it("/etc", QDirIterator::Subdirectories);
 while (it.hasNext()) {
     qDebug() << it.next();

     // /etc/.
     // /etc/..
     // /etc/X11
     // /etc/X11/fs
     // ...
 }


вот и пойми кто тут не прямой)
PM WWW   Вверх
Earnest
Дата 22.7.2011, 15:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(boostcoder @  22.7.2011,  15:19 Найти цитируемый пост)
причина в моцге!

Ничо подобного! Причина как раз в его отсутствии! smile 
Цитата(fish9370 @  22.7.2011,  15:17 Найти цитируемый пост)
 это кстати попытка сделать из них пряморуких..  

Это из области мифологии, к сожалению... Если у человека нет нужной хромосомы, то как задачу не упрощай - все равно найдет возможность сделать глупость. 
Нельзя упрощать до бесконечности - на упрощение\ разбиение придется потратить больше времени, чем на решение задачи самому. Так что смысла никакого, кроме 100% занятности населения. smile 
Понятно, у Гуглов может быть свое мнение на этот счет, и они имеют на это право. Как и мы.

Добавлено через 2 минуты и 50 секунд
Цитата(boostcoder @  22.7.2011,  15:19 Найти цитируемый пост)
покажи Си`шный эквивалент ;)

Да, кстати еще один аргумент в пользу шаблонов и всяких бустов. Если умудрился написать подобное выражение так, что оно скомпилировалось, то очень много шансов за то, что оно работает правильно. Простой код таких "гарантий" не дает. smile 


--------------------
...
PM   Вверх
fish9370
Дата 22.7.2011, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  22.7.2011,  14:19 Найти цитируемый пост)

#include <boost/filesystem.hpp>
#include <iostream> 
int main() {
       boost::filesystem::recursive_directory_iterator beg("."), end;
       for ( ; beg != end; ++beg ) {
              std::cout << *beg << std::endl;
       }
}


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

ну и пока ты используешь, отлаженую библиотеку, полагаю все классно, но когда начинается реальный проект с кучей участников, где как вы правильно заметили, не поймешь, кто с какими руками, вот тогда и начинается танец с бубном (не знаю я проектов на бусте, мне просто так кажется)

на Си я код напишу, сразу как появится время..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 22.7.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



fish9370, естественно, что это уже оффтоп.
но тем не менее...

Цитата(fish9370 @  22.7.2011,  15:40 Найти цитируемый пост)
я говорил про простой код

в простом коде(самописном), как показывает практика, больше шансов нагородить ошибок, как ты недавно заметил в теме где ты написал функцию strcmp().

Цитата(fish9370 @  22.7.2011,  15:40 Найти цитируемый пост)
этот код сложен тем, что не зная буста (как в моем случае), сложно понять, что тут вообще происходит

ну вот видишь... а ты про кривизну рук ;)

Цитата(fish9370 @  22.7.2011,  15:40 Найти цитируемый пост)
уверен, что там куча подводных камней

не исключено! но плюс в том, что эти подводные камни отловятся раньше, т.к. этот код юзаю не я один. в смысле boost использую не только я. и это все к тому, что: не нужно городить то, что давно нагорожено.

Цитата(fish9370 @  22.7.2011,  15:40 Найти цитируемый пост)
но когда начинается реальный проект с кучей участников, где как вы правильно заметили, не поймешь, кто с какими руками, вот тогда и начинается танец с бубном

в реальных проекта, как правило, наказывают за рукоблудие. по причинам написанным выше.

Цитата(fish9370 @  22.7.2011,  15:40 Найти цитируемый пост)
не знаю я проектов на бусте, мне просто так кажется

к примеру: http://www.boost.org/users/uses_shrink.html

Добавлено через 5 минут
а вообще, я знаю очень мало проектов на плюсах, написанных не теми кто учился программировать по доке Qt, не использующих boost.
сейчас, благо, boost.type_traits и boost.thread перешли в стандарт. это уже в некоторой степени позволяет отвязаться от boost. но все равно многого не хватает:
asio.
mpl.
fusion.
function_types.
filesystem.
iostreams.
e.t.c...
PM WWW   Вверх
fish9370
Дата 22.7.2011, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  22.7.2011,  15:49 Найти цитируемый пост)
в простом коде(самописном), как показывает практика, больше шансов нагородить ошибок, как ты недавно заметил в теме где ты написал функцию strcmp()


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

в твоем случае, все тоже самое, те же библиотеки, с проверенными функциями или классами, но беда Си++ в том, что объекты на порядок сложнее, и распутывать клубок из множественного наследования, с кучей перегрузок, исключений и т.д. становится не интуитивно понятно (так кажется мне, и похоже не только мне, если так вопрос поставили в google)


Цитата(boostcoder @  22.7.2011,  15:49 Найти цитируемый пост)
ну вот видишь... а ты про кривизну рук ;)

это ты так подколол? сказать по-правде, тут часто можно услышать - кривые руки, нет мозгов и т.п.. а чем это измеряется? кто тут судья? я бы понял, если бы с нами был Линус Торвальдс, Марк Спенсор, Игорь Сысоев, да любой другой человек, которому есть чем гордиться..
если вам есть чем гордится, продемонстрируйте или прекратите бросаться такими громкими словами..

Это сообщение отредактировал(а) fish9370 - 22.7.2011, 16:38


--------------------
undefined
PM MAIL WWW ICQ   Вверх
baldina
Дата 22.7.2011, 16:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(fish9370 @  22.7.2011,  16:21 Найти цитируемый пост)
распутывать клубок из множественного наследования, с кучей перегрузок, исключений и т.д.

обычно его не надо распутывать: пользуются публичным интерфейсом, остальное за кулисами. тем-то ООП и хорошо.
конечно, что бы изучить большой проект или, скажем, библиотеку, требуется время.
но на С все это будет выглядеть огромным списком структур и функций, и только внятное описание (если оно есть) поможет разобраться.
в С++ структура присутствует в самом коде, и разобраться при прочих равных проще
PM MAIL   Вверх
fish9370
Дата 22.7.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  22.7.2011,  15:49 Найти цитируемый пост)
к примеру: http://www.boost.org/users/uses_shrink.html


как-то мало высоконагруженных сетевых приложений, да и фотошоп CS2 мне почему-то казалось, что написан на .net (так уж он притормаживал), не знаю, что и сказать, чтобы не коим образом никого не обидеть..

Цитата(baldina @  22.7.2011,  16:47 Найти цитируемый пост)
в С++ структура присутствует в самом коде, и разобраться при прочих равных проще


почему-то мне кажется, что это субъективно.. разбираться с кодом мне помогает doxygen (спасибо создателям)..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
bsa
Дата 22.7.2011, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



fish9370, скажи, какой у тебя уровень знаний С++ и какой опыт работы на нем?
PM   Вверх
boostcoder
Дата 22.7.2011, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(fish9370 @  22.7.2011,  16:21 Найти цитируемый пост)
это ты так подколол?

нет. забудь...

Добавлено через 3 минуты и 33 секунды
Цитата(fish9370 @  22.7.2011,  16:52 Найти цитируемый пост)
как-то мало высоконагруженных сетевых приложений

во первых - это критерий?
во вторых - а что еще использовать для сетевых приложений кроме как asio? ;)
пример: http://forum.vingrad.ru/forum/topic-321942.html
PM WWW   Вверх
fish9370
Дата 22.7.2011, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(bsa @  22.7.2011,  16:57 Найти цитируемый пост)
скажи, какой у тебя уровень знаний С++ и какой опыт работы на нем?


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

при этом это всего лишь мое хобби..

спасибо, что спросил..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
bsa
Дата 22.7.2011, 20:52 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(fish9370 @  22.7.2011,  20:30 Найти цитируемый пост)
если скажу, что нулевой, то совру..

ты лучше скажи так, как есть: прочитал книжку, видел код, писал простейший код, писал сложный код, понимаю 99% кода, полностью владею 99% возможностей языка.
Просто если один из первых 3-х пунктов, то ты просто не имеешь морального права спорить с людьми, которые принадлежат к остальным 3-м категориям. Потому что получается "не читал, но осуждаю".
Цитата(fish9370 @  22.7.2011,  20:30 Найти цитируемый пост)
я хочу избежать его использование в своей жизни по максимуму.

Вот только не надо никому свое мнение навязывать. Я лично в любом деле выбираю подходящие инструменты (из тех, что у меня есть, и которыми я умею пользоваться), причем не только в области программирования. Надо драйвер или системную утилиту - пишу на С, надо консольную пользовательскую да еще и с кучей наворотов - пишу на С++, нужна с GUI - использую Qt, если Qt слишком жирно использовать, то делаю свои обертки вокруг системных библиотек...
Цитата(fish9370 @  22.7.2011,  20:30 Найти цитируемый пост)
при этом я влюблен в Си.. мне нравятся решения на Си.. я люблю из изучать, читать, думать о софте на Си..

Никогда не думал, что скажу такое, но: в мире еще есть много чего более достойного твоих дум и любви. Не стоит зацикливаться на С. Тем более, что лет через 10 ты со своим С будешь уже никому не нужен (выйдешь из профпригодного возраста), как и многие из здесь постоянно тусующихся...
PM   Вверх
fish9370
Дата 22.7.2011, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(bsa @  22.7.2011,  20:52 Найти цитируемый пост)
Просто если один из первых 3-х пунктов, то ты просто не имеешь морального права спорить с людьми, которые принадлежат к остальным 3-м категориям. Потому что получается "не читал, но осуждаю".


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

Цитата(bsa @  22.7.2011,  20:52 Найти цитируемый пост)
Тем более, что лет через 10 ты со своим С будешь уже никому не нужен


ха-ха..  smile  вот только не пугай.. Си это мое хобби.. да и срок жизни проектов на Си на порядок больше, чем на Си++ (обычно это обусловленно открытостью кода, но факт есть факт)


Цитата(bsa @  22.7.2011,  20:52 Найти цитируемый пост)
Никогда не думал, что скажу такое, но: в мире еще есть много чего более достойного твоих дум и любви


я тоже не думал, что ты это скажешь, а главное что ты хотел этим сказать?  smile 

Это сообщение отредактировал(а) fish9370 - 22.7.2011, 21:35


--------------------
undefined
PM MAIL WWW ICQ   Вверх
toxx
Дата 22.7.2011, 22:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 2
Всего: 13



Цитата

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

Все что в университете втирают мало пригодно для реальных проектов
PM MAIL   Вверх
fish9370
Дата 23.7.2011, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  22.7.2011,  14:19 Найти цитируемый пост)
покажи Си`шный эквивалент ;)


Код

#include <dirent.h>

void dir(const char *path)
{
        DIR *dp;
        struct dirent *dirp;

        if ((dp = opendir(path)) == NULL) {
                mifi_verbose(LOG_VERBOSE, "no access to directory\n");
                return;
        }

        while ((dirp = readdir(dp)) != NULL) {
                if (strcmp(dirp->d_name, ".") == 0 || strcmp(dirp->d_name, "..") == 0)
                        continue;

                mifi_verbose(LOG_BLUE, "%s\n", dirp->d_name);
        }
       
        closedir(dp);
}


ну и чей код проще?

Это сообщение отредактировал(а) fish9370 - 23.7.2011, 11:01


--------------------
undefined
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 23.7.2011, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



fish9370, то что ты написал, это эквивалент этого:
Код

#include <boost/filesystem.hpp>
#include <iostream>
 
int main() {
   boost::filesystem::recursive_directory_iterator beg("."), end;
   for ( ; beg != end; ++beg ) {
   }
}

т.к. результат своего мегакода ты некуда не сохраняешь и использовать его невозможно. разве не очевидно какой код проще? ;)
PM WWW   Вверх
fish9370
Дата 23.7.2011, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  23.7.2011,  11:38 Найти цитируемый пост)
т.к. результат своего мегакода ты некуда не сохраняешь и использовать его невозможно


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


--------------------
undefined
PM MAIL WWW ICQ   Вверх
azesmcar
Дата 23.7.2011, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(fish9370 @  23.7.2011,  10:57 Найти цитируемый пост)
ну и чей код проще?

 smile 
PM   Вверх
boostcoder
Дата 23.7.2011, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



fish9370, дело не в победе. а в том, что ты отрицаешь очевидные даже для тебя вещи. а это попахивает тараканами.

Цитата(fish9370 @  23.7.2011,  11:44 Найти цитируемый пост)
чтобы все было просто, я воспользуюсь PHP

держите меня семеро smile
значит плюсы не устраивают, а ПХП устраивает? комплексы и предрассудки...
PM WWW   Вверх
azesmcar
Дата 23.7.2011, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(fish9370 @  23.7.2011,  11:44 Найти цитируемый пост)
хорошо ты победил, твой код проще.. но когда я захочу, чтобы все было просто, я воспользуюсь PHP.. там я могу делать такие вещи, что бусту и не снилось.. 

Логическое продолжение:
А в остальное время буду писать на ассемблере, ибо это круто и так поступают настоящие джедаи smile 
Позволю себе заметить, что спор с человеком, для которого программирование на Си - хобби просто напросто лишен смысла. Ты пишешь для удовольствия, профессионал - ради денег, не надо путать одно с другим, у этих двух категорий разные цели.

Это сообщение отредактировал(а) azesmcar - 23.7.2011, 11:51
PM   Вверх
fish9370
Дата 23.7.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(boostcoder @  23.7.2011,  11:47 Найти цитируемый пост)
значит плюсы не устраивают, а ПХП устраивает? комплексы и предрассудки


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


Цитата(boostcoder @  23.7.2011,  11:47 Найти цитируемый пост)
а это попахивает тараканами


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


--------------------
undefined
PM MAIL WWW ICQ   Вверх
borisbn
Дата 23.7.2011, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



я не в качестве спора... ничего не хочу доказать... просто понравился код:
Код

printf( "%s",
    qPrintable( QDir( "." ).entryList( QStringList() << "*.cpp" << "*.h", QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot ).join( "\n" ) )
);

догадайтесь, что за библиотека smile



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 23.7.2011, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



borisbn, а сколько попыток?

в добавок:
во первых - не рекурсивный обход(или я ошибаюсь?).
во вторых - невозможно управлять обходом.
в третьих - невозможно задать предикат.
в четвертых - со стандартными контейнерами/алгоритмами работает через попу. т.е. только после того как обход закончен, результат можно адаптировать в std::list<std::string>, если не ошибаюсь.
в пятых - одним словом - "Qt".

пожалуй хватит..

Это сообщение отредактировал(а) boostcoder - 23.7.2011, 12:55
PM WWW   Вверх
borisbn
Дата 23.7.2011, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
а сколько попыток?

4.7.3 smile
тогда я попробую с 1.46.1 попыток угадать, что за библиотека у Вас smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 23.7.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
во первых - не рекурсивный обход(или я ошибаюсь?).

не ошибаетесь
Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
во вторых - невозможно управлять обходом.

для упарвляемого есть это
Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
в третьих - невозможно задать предикат.

можно задавать regEx-овское выражение вместо *.*
Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
в четвертых - со стандартными контейнерами/алгоритмами работает через попу. т.е. только после того как обход закончен, результат можно адаптировать в std::list<std::string>, если не ошибаюсь.

не очень понял, но по-моему это - пункт "во-вторых". Кроме того у QList есть
Цитата
std::list<T> QList::toStdList () const

Цитата(boostcoder @  23.7.2011,  12:27 Найти цитируемый пост)
в пятых - одним словом - "Qt".

Во-первых - угадали с первого раза !
Во-вторых - Вы просто не умеете её готовить... так же, как я boost


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 23.7.2011, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(borisbn @  23.7.2011,  15:36 Найти цитируемый пост)
для упарвляемого есть это

какой же это итератор? smile 
какому из operation_requirements и type_requirements он соответствует? тут я ничего похожего не нашел. опять тролли сами все придумали и выдали юзверям за чистую монету.

Цитата(borisbn @  23.7.2011,  15:36 Найти цитируемый пост)
можно задавать regEx-овское выражение вместо *.*

предикат способен выполнять действия, а не только проверку.


borisbn, Вы не первый кому я пытаюсь показать что в Qt _очень_многое_ кроме GUI(хотя и это тоже...частично.) сделано как-то по сишному...что ли.. для меня это совершенно не пригодно к использованию.
пора заканчивать. а это на троллинг намекает..

Добавлено @ 16:00
Цитата(boostcoder @  23.7.2011,  15:54 Найти цитируемый пост)
какому из operation_requirements и type_requirements он соответствует?

поставлю вопрос по другому: как "это" использовать со стандартными контейнерами/алгоритмами?

Добавлено @ 16:06
Цитата(borisbn @  23.7.2011,  15:36 Найти цитируемый пост)
Вы просто не умеете её готовить

это вряд ли.

Это сообщение отредактировал(а) boostcoder - 23.7.2011, 16:20
PM WWW   Вверх
borisbn
Дата 23.7.2011, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  23.7.2011,  15:54 Найти цитируемый пост)
пора заканчивать. я это на троллинг намекает..

из всего вышесказанного вот это поддерживаю smile
Думаю, абсолютно ничего плохого не будет, если каждый останется при своём ИМХО smile

кста, улыбнула расшифровка ИМХО - Имею Мнение. Хрен Оспоришь smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 23.7.2011, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(borisbn @  23.7.2011,  16:19 Найти цитируемый пост)
Имею Мнение. Хрен Оспоришь

в речи так и использую)

PM WWW   Вверх
Сыроежка
Дата 23.7.2011, 20:32 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(bsa @  22.7.2011,  20:52 Найти цитируемый пост)
Не стоит зацикливаться на С. Тем более, что лет через 10 ты со своим С будешь уже никому не нужен (выйдешь из профпригодного возраста), как и многие из здесь постоянно тусующихся... 


"Профпригодный возраст" для программистов на Западе как раз начинается с 40 лет!  Так что вы путаете профпригодный возраст с тем, что в России как раз набирают на работу молодых и зеленых, которыми легче управлять, так как сам менеджер именно профнепригоден, а потому ему нужны в подчиненные такие же безграмотные, чтобы они не ставили под сомнение компетентность начальника!smile

Добавлено через 8 минут и 40 секунд
Цитата(azesmcar @  23.7.2011,  11:50 Найти цитируемый пост)
Логическое продолжение:
А в остальное время буду писать на ассемблере, ибо это круто и так поступают настоящие джедаи smile 
Позволю себе заметить, что спор с человеком, для которого программирование на Си - хобби просто напросто лишен смысла. Ты пишешь для удовольствия, профессионал - ради денег, не надо путать одно с другим, у этих двух категорий разные цели.


Глупость! Сразу же могу сказать, что вы - не профессионал! Профессионалы как раз пишут ради удовольствия!  Профессионалы пишут качественный код и от этого получают удовольствие. А  вот новички пишут ради денег! Они пишут порой страшный код, который порой сами не понимают, но у них принцип:"Код работает? Тогда какие ко мне претензии? Гоните деньги!" А профессионал всегда переживает, если он не получает удовольствие от кода, и ему кажется, что код мог бы быть написан лучше.

Это сообщение отредактировал(а) Сыроежка - 23.7.2011, 20:33
PM MAIL   Вверх
azesmcar
Дата 23.7.2011, 20:49 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Сыроежка @  23.7.2011,  20:32 Найти цитируемый пост)
Глупость! Сразу же могу сказать, что вы - не профессионал!

 smile 
Да, вы славитесь громогласными, в то же время необоснованными заявлениями.

Цитата(Сыроежка @  23.7.2011,  20:32 Найти цитируемый пост)
Профессионалы пишут качественный код и от этого получают удовольствие.

Да уж, фактически C++ не единственный язык, с которым у вас проблема. У вас еще и с русским проблема. Загляните в словарь и посмотрите значение слова профессионал.

Цитата(Сыроежка @  23.7.2011,  20:32 Найти цитируемый пост)
Профессионалы как раз пишут ради удовольствия

Я рад, что вы работаете ради собственного удовольствия, надеюсь ваши дети это поймут и оценят, когда им будет не хватать на учебу, еду и одежду.
Для меня лично единственный стимул идти на работу и писать код - это обеспечить должным образом мою семью, a стимулом для написания качественного кода является тот факт, что за плохой много не платят.

Цитата(Сыроежка @  23.7.2011,  20:32 Найти цитируемый пост)
А  вот новички пишут ради денег!

Серьезно? И много новичкам за это платят?


Это сообщение отредактировал(а) azesmcar - 23.7.2011, 21:42
PM   Вверх
mes
Дата 23.7.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Сыроежка @  23.7.2011,  19:32 Найти цитируемый пост)
Глупость! 
Вы опять подменяете понятия.. В данном случае путаете противопоставления "профессионал/мастер и новичок " и  "профессионал и любитель"..  smile 
 

Это сообщение отредактировал(а) mes - 23.7.2011, 20:53


--------------------
PM MAIL WWW   Вверх
mes
Дата 23.7.2011, 21:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(borisbn @  23.7.2011,  15:19 Найти цитируемый пост)
 если каждый останется при своём ИМХО

всяк кулик своё болото хвалит© ..
 чтоб объективно спорить, надо прежде всего критически относится к своему болоту, иначе каждый и будет тянуть одеяло на свою сторону.. smile



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 23.7.2011, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  23.7.2011,  21:47 Найти цитируемый пост)
всяк кулик своё болото хвалит©

эт как обычно smile

Цитата(mes @  23.7.2011,  21:47 Найти цитируемый пост)
надо прежде всего критически относится к своему болоту

стараюсь.
PM WWW   Вверх
Сыроежка
Дата 24.7.2011, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(mes @  23.7.2011,  20:52 Найти цитируемый пост)
Вы опять подменяете понятия.. В данном случае путаете противопоставления "профессионал/мастер и новичок " и  "профессионал и любитель"..   

Я ничего не путаю. Это вы просто в силу соего невысокого интеллекта выдумываете всякие новые определения, так как не в состоянии понять, что я сказал.
Цитата(azesmcar @  23.7.2011,  20:49 Найти цитируемый пост)
Я рад, что вы работаете ради собственного удовольствия, надеюсь ваши дети это поймут и оценят, когда им будет не хватать на учебу, еду и одежду



Деньги зарабатывают и халтурщики, чтобы любой ценой себя прокормить.  Поэтому сегодня они могут работать программистами, а завтра барменами в ресторане. К профессионализму это абсолютно никакого отношения не имеет.
PM MAIL   Вверх
Сыроежка
Дата 24.7.2011, 02:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(boostcoder @  23.7.2011,  11:38 Найти цитируемый пост)
fish9370, то что ты написал, это эквивалент этого:

код C++

#include <boost/filesystem.hpp>
#include <iostream>
 
int main() {
   boost::filesystem::recursive_directory_iterator beg("."), end;
   for ( ; beg != end; ++beg ) {
   }
}


т.к. результат своего мегакода ты некуда не сохраняешь и использовать его невозможно. разве не очевидно какой код проще? ;) 


Цитата(fish9370 @  23.7.2011,  11:44 Найти цитируемый пост)
хорошо ты победил, твой код проще.. но когда я захочу, чтобы все было просто, я воспользуюсь PHP.. там я могу делать такие вещи, что бусту и не снилось.. 



Зря вы поспешно согласились. Фактически, вас одурачили. Приведенный код никакого отношения к С++ не имеет. В том смысле, что тот же самый код твы могли бы назвать кодом С, а не С++. Просто автор этого кода сам имеет слабое представление о С++.
Что имеет место по существу? Вы представили реализацию, а автор этого кода не представил реализацию. Только и всего! За его строчками кода стоит реализация, которую он вам не демонстрирует. А эта реализация может быть написана с равным успехом на С и на С++, а потом будут представлены эти строчки кода, и автогр будет заявлять: "Смотрите, какой у меня код короткий!"

Вопрос на самом деле состоит в том, почему эта реализация для С++ уже существует, а для С нет. Вот именно в этом и состоит смысл различия С и С++, а не в том, что вам продемонстрировали некий интерфейс, который можно с одинаковым успехом назвать кодом С, а не С++. Различие состоит в том, что в С++ есть шаблоны. И этот главное различие. Когда есть шаблоны, вы можете писать обобщеннный код, и более того шаблоны стимулируют рнаписание обощенного кода. Поэтому в С++ даже есть целая библиотека шаблонов, хотя все то самое вы можете написать на С. Однако делать на С это трудоемко, так как надо будет писать отдельную реализацию для каждого типа данных. Даже не столько отдельную реализацию, сколько отдельную специализацию для каждого типа. 
Между прочим нельзя исключать такую возможносьть, что в будущемп в стандарт С включат шаблоны. И тогда вообще продемонстрированный код не будет иметь никакого смысла в вопросе различия С и С++.

То есть я хотел сказать, что приведденный код, как наивно думал его автор, на самом деле не раскрывает различия С и С++. Эти различия не такие поверхностные, как этот фокус с ловкостью рук, когда вам приводят конечный интерфейс, который между прочим может выглядеть точно также на С, а не реализацию.



Это сообщение отредактировал(а) Сыроежка - 24.7.2011, 02:40
PM MAIL   Вверх
alexvs11
Дата 24.7.2011, 02:39 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



Цитата(Сыроежка @  24.7.2011,  02:23 Найти цитируемый пост)
И тогда вообще продемонстрированный код не будет иметь никакого смысла в вопросе различия С и С++.

причем тут шаблоны? в примере нет шаблонов


Цитата(Сыроежка @  24.7.2011,  02:23 Найти цитируемый пост)
Что имеет место по существу? Вы представили реализацию, а автор этого кода не представил реализацию.

ни си, ни с++ не представляют возможностей доступа к ФС, так что ни тот, ни другой пример не представляют конечной реализации

Добавлено через 6 минут и 28 секунд
доступа подобного типа конечно smile 
PM MAIL   Вверх
azesmcar
Дата 24.7.2011, 07:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Сыроежка @  24.7.2011,  02:03 Найти цитируемый пост)
Деньги зарабатывают и халтурщики, чтобы любой ценой себя прокормить.  Поэтому сегодня они могут работать программистами, а завтра барменами в ресторане. К профессионализму это абсолютно никакого отношения не имеет. 

Вы еще и читать не умеете? Я прислал ссылку на описание слова профессионал, но вы видимо
Цитата(Сыроежка @  24.7.2011,  02:03 Найти цитируемый пост)
в силу соего невысокого интеллекта

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

PM   Вверх
Сыроежка
Дата 24.7.2011, 09:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 24.6.2011

Репутация: нет
Всего: 1



Цитата(azesmcar @  24.7.2011,  07:51 Найти цитируемый пост)
Говоря простым языком, профессионал - человек, который зарабатывает на жизнь своей профессией, а человек, который чем-то занимается исключительно ради удовольствия - любитель, для которого это занятие хобби.


Вот когда вы попадете к врачу который вместо аппендикса удалит вам почку, вот тогда вы сразу же поймете, кто профессионал, а кто нет.

Я вам тприведу свежий пример с затонувшим теплоходом "Булгария". Если бы капитан корабля был именно профессионалом, а не рвачем, стремящимся любой ценой срубить бабло, то он бы просто не выпустил теплоход в плавание. Именно по той причине, что был профессионалом. А тот, у кого "исколючительно зарабатывает деньгит на жизнь профессией"Ю тому "море по колено". Профессионал имеет более широкое понятие, чем вы трактуете. Вы жн трактуете профессионалЮ как любого, кто просиживает свои штаны на рабочем месте.
PM MAIL   Вверх
azesmcar
Дата 24.7.2011, 10:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Сыроежка

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

Я говорил о том, что спор профессионального программиста с человеком, для которого это хобби не имеет смысла, так-как профессиональный программист стремиться решить задачу, потратив на это минимум времени, без вреда для качества конечного продукта, а любитель стремиться получить удовольствие от процесса. Он может написать рекурсивный обход директории на ассемблере и потратит на это 2-3 дня, в то время как профессионалу такое "удовольствие" никто не разрешит. Если профессионал напишет обход директории за 2-3 дня, то его скорее всего уволят.
По этой простой причине спор профессионала с любителем не имеет смысла, они преследуют разные цели.
Теперь понятнее?

Это сообщение отредактировал(а) azesmcar - 24.7.2011, 10:11
PM   Вверх
fish9370
Дата 24.7.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: -1
Всего: 1



Цитата(Сыроежка @  24.7.2011,  02:23 Найти цитируемый пост)
Зря вы поспешно согласились. Фактически, вас одурачили. Приведенный код никакого отношения к С++ не имеет. В том смысле, что тот же самый код твы могли бы назвать кодом С, а не С++


я согласился потому, что для того чтобы работать с полученными данными, мне нужно было бы написать контейнер.. а у него уже есть STL, Boost, Qt.. 

а так я с тобой согласен, разницы никакой..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
baldina
Дата 24.7.2011, 19:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



 smile 
Цитата(Сыроежка @  24.7.2011,  09:50 Найти цитируемый пост)
Я вам тприведу свежий пример с затонувшим теплоходом "Булгария". Если бы капитан корабля был именно профессионалом, а не рвачем, стремящимся любой ценой срубить бабло, то он бы просто не выпустил теплоход в плавание.

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

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2385 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.