Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 19:35   #91
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я считаю еще более грешным вынос того что нафиг вне цикла не нужно, из этого цикла и выносить.
В рамках с++, или как?
Критерии озвучьте пожалста.
_Bers вне форума Ответить с цитированием
Старый 25.12.2011, 19:40   #92
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
говнокод вас очень любит.
Т. е. единственным аргументом за вынос этого несчастного чара из цикла останется некий мифический "единый стиль"? Тогда я вынужден разочаровать тебя - в мире далеко не все так бинарно. У любого правила есть область применимости, и всякое правило рано или поздно вступает в конфликт с другими правилами. Ты же упорно исключаешь из картины своего уютного мирка читаемость кода. Попробуй перечитать Макконнела внимательнее - о таком он тоже писал.

Собственно, "дискуссия" давно исчерпала себя, sapienti sat, как говорится. Потому ухожу пока из этой темы, может завтра с работы еще что-то отвечу.
Son Of Pain вне форума Ответить с цитированием
Старый 25.12.2011, 19:44   #93
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
В рамках с++, или как?
в данном случае в рамках С++.
возможностями нужно пользоваться в меру, и думать применять или не применять в этом месте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 19:59   #94
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Т. е. единственным аргументом за вынос этого несчастного чара из цикла останется некий мифический "единый стиль"? Тогда я вынужден разочаровать тебя - в мире далеко не все так бинарно. У любого правила есть область применимости, и всякое правило рано или поздно вступает в конфликт с другими правилами. Ты же упорно исключаешь из картины своего уютного мирка читаемость кода. Попробуй перечитать Макконнела внимательнее - о таком он тоже писал.

Собственно, "дискуссия" давно исчерпала себя, sapienti sat, как говорится. Потому ухожу пока из этой темы, может завтра с работы еще что-то отвечу.
Жизнь полна сюрпризов, зачем создавать их себе на задницу? (ц)Ламот, Макконелл.


Пиши с++ код, понятный любому программисту с++.
Либо, для аналогичной задачи пиши портянку, которая потребует знания камня, компилятора.

Я - за читабельность и очевидность кода, написанного на целевом языке.
_Bers вне форума Ответить с цитированием
Старый 25.12.2011, 20:01   #95
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Т. е. единственным аргументом за вынос этого несчастного чара из цикла останется некий мифический "единый стиль"? вечу.
-100500 ошибок.

Какие аргументы За внесение чара в цикл и нарушения общего стиля?
знание ассемблера конкретного камня
?
_Bers вне форума Ответить с цитированием
Старый 25.12.2011, 20:27   #96
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Прежде чем вбрасывать сюда пафосные лозунги, тебе стоило бы ознакомиться с базовыми принципами кодогенерации в C++. Очевидно, что компилятор не будет выделять память в стеке (если ты знаешь, что это такое) на каждой итерации цикла.
Давай ты не будешь мне рассказывать, с чем бы мне стоило ознакомиться.

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Ты же не будешь спорить с тем, что если переменная объявлена рядом с местом ее использования - это выглядит логичнее, чем pascal-style куча переменных в одном месте?
Ты же не будешь спорить с тем, что в C++ переменную можно объявить не только в начале блока?
Ты уповаешь на читабельность (которая на столько же догматична, на сколько и предложение вынести объявление переменной из цикла), но только не понятно, чем это:
Код:
...
char c = 0;
for (...)
{
std::sin >> c;
}
...
читается хуже, чем это:
Код:
...
for (...)
{
char c; // еще и без инициализации
std::sin >> c;
}
...
Далее, как уже упоминалось, если потом кто-то захочет вместо char использовать std::string, или свой собственный класс, и цикл не такой элементарный? Ему придется присесть полтора раза, чтобы конструкторы и деструкторы не вызывались 2 млн. раз.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария

Последний раз редактировалось Blade; 25.12.2011 в 20:32.
Blade вне форума Ответить с цитированием
Старый 25.12.2011, 20:31   #97
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
практически любой нормальный компилятор итак делает так.
А? Чо? Вон те скобки он сам вставляет?
http://liveworkspace.org/code/a5c22e...167ce034cf3547
still_alive вне форума Ответить с цитированием
Старый 25.12.2011, 20:35   #98
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
А? Чо? Вон те скобки он сам вставляет?
всмысле компилирует так словно они стоят.
вообще надо все смотреть на конкретных компилях и на конкретном коде.
асм знаю хорошо, разобраться смогу.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2011, 20:47   #99
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
всмысле компилирует так словно они стоят.
вообще надо все смотреть на конкретных компилях и на конкретном коде.
асм знаю хорошо, разобраться смогу.
1. Програмиисту с++ асм не нужен.

2. Если нужен - нарушение инкапсуляции.
_Bers вне форума Ответить с цитированием
Старый 25.12.2011, 20:49   #100
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Он не компилирует одинаково без тех скобок или с ними, да и не может этого делать. Потому что local scope некоторых переменных могут измениться. И в коде по ссылке это можно увидеть.

Цитата:
Сообщение от Стандарт
A name declared in block is local to that block. Its potential scope begins at its point of declaration and ends at the end of its declarative region.
...
So that several statements can be used where one is expected, the compound statement (also, and equivalently, called block) is provided.
still_alive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PopupMenu со мной не дружит Жигилий_Ульяна Компоненты Delphi 5 25.12.2008 11:04
проблемы с select или со мной... smoke888 JavaScript, Ajax 2 23.09.2008 19:02