- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
#include <iostream>
#include <string>
#include <boost/foreach.hpp>
int main(int argc, char* argv[]) {
std::string str = "Boost FOREACH!";
char ch;
if (boost::foreach_detail_::auto_any_t _foreach_col11 = boost::foreach_detail_::contain( ( str ) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else if (boost::foreach_detail_::auto_any_t _foreach_cur11 = boost::foreach_detail_::begin( _foreach_col11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else if (boost::foreach_detail_::auto_any_t _foreach_end11 = boost::foreach_detail_::end( _foreach_col11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) , (true ? 0 : boost::foreach_detail_::or_( boost::foreach_detail_::and_( boost::foreach_detail_::not_(boost::foreach_detail_::is_array_( str )) , (true ? 0 : boost::foreach_detail_::is_rvalue_( (true ? boost::foreach_detail_::make_probe( str ) : ( str )), 0))) , boost::foreach_detail_::and_( boost::foreach_detail_::not_( boost_foreach_is_noncopyable( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value) ) , boost_foreach_is_lightweight_proxy( boost::foreach_detail_::to_ptr( str ) , boost_foreach_argument_dependent_lookup_hack_value)) )) ) ) {} else for (bool _foreach_continue11 = true; _foreach_continue11 && ! boost::foreach_detail_::done( _foreach_cur11 , _foreach_end11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) ; _foreach_continue11 ? boost::foreach_detail_::next( _foreach_cur11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) : (void)0) if (boost::foreach_detail_::set_false( _foreach_continue11 )) {} else for ( ch = boost::foreach_detail_::deref( _foreach_cur11 , (true ? 0 : boost::foreach_detail_::encode_type( str , boost::foreach_detail_::is_const_( str ))) ) ; ! _foreach_continue11 ; _foreach_continue11 = true) {
std::cout << ch;
}
std::cout << std::endl;
return 0;
}
Конечно, это не совсем говнокод, но... я офигел когда посмотрел во что превращается простой BOOST_FOREACH
guest 03.05.2010 11:08 # +5
guest 30.09.2014 13:52 # +1
guest 03.05.2010 11:08 # −20
жирный — жирный
курсив — курсив
подчеркнутый — подчеркнутый
перечеркнутый — перечеркнутый
мигающий — мигающий
цвет — цвет (подробнее)
размер — размер (подробнее)
(подробнее)
guest 03.05.2010 11:08 # −2
Просто медленно компилируется, и что?
Да и не так уж и медленно компилируется, что-бы плакать...
guest 03.05.2010 11:15 # −1
guest 03.05.2010 11:15 # +1
guest 03.05.2010 11:18 # 0
guest 03.05.2010 11:22 # −1
guest 03.05.2010 11:33 # +6
guest 03.05.2010 13:19 # +3
guest 03.05.2010 13:24 # 0
Нужно будет срочно поправить какой-то баг, и вот ты уже по самую макушку в абсолютном дерьмище.
guest 03.05.2010 18:51 # 0
guest 03.05.2010 20:48 # +3
А нужно просто иметь мозг, что-бы это исправить.
guest 03.05.2010 21:39 # 0
guest 03.05.2010 11:20 # +1
*Оптимизирован по скорости выполнения.
*Гибок.
*Удобен в использовании, если ты знаешь С++.
Минусы:
*Дольше компилируется.
*Внутрь лучше не заглядывать (минус, не имеющий веса).
guest 03.05.2010 11:25 # +2
Такой говняной кодогенерации, как темплейты с++ еще поискать надо
>*Гибок.
Уебишен - более точная характеристика
>*Удобен в использовании, если ты знаешь С++.
Удобен если ты не знаешь ничего кроме С++
>*Дольше компилируется... в говнокод
>*Внутрь лучше не заглядывать (минус, не имеющий веса).
Вот это поворот событий, вот оно как оказывается! Да ты поди в своей разлюбимой венде сидишь за тремя фаерволами - а все потому что внутри гавно, но это не важно, так?
guest 03.05.2010 11:36 # 0
guest 03.05.2010 11:38 # +8
>не тяжёлую
Взаимоисключающие параграфы.
Да и кроссплат не с++'ом единым... как говорится.
guest 03.05.2010 18:28 # −2
>>не тяжёлую
>Взаимоисключающие параграфы.
Нда? Напомни-ка мне, какой размер рантайма у большинства либ буста?
guest 03.05.2010 19:10 # −2
guest 03.05.2010 19:15 # +1
guest 03.05.2010 21:47 # +1
guest 03.05.2010 22:32 # +1
guest 03.05.2010 22:55 # +1
template<int MaxCountElementInStack>
class Stack
{
...
};
И чё получил?
Допустим ты используешь стек с параметром Stack<10>, Stack<11>, Stack<12>... Stack<1000>
То что ты получишь? 990 классов реализаций стека в екзешнике?
Ну ты и загнул. Ничего лишнего...
guest 03.05.2010 23:11 # −1
И никто не мешает сделать размер стека параметром конструктора.
guest 03.05.2010 23:24 # 0
guest 03.05.2010 23:31 # +1
Я понимаю, что для морд к аксессу, которыми ты себе зарабатываешь на доширак лишние три инструкции (да ещё с доступом к памяти) это пустяки. Но для рендеринга, матмоделирования и других жадных до CPU задач - это важно.
guest 04.05.2010 08:18 # −1
Из-за каких-то жалких 3 инструкций заводишь целый шаблон, а затем 990 экземпляров одного класса, раздувая экзешник...
guest 03.05.2010 11:45 # +4
guest 03.05.2010 11:49 # 0
guest 03.05.2010 18:53 # −2
guest 03.05.2010 19:01 # +2
guest 03.05.2010 21:01 # −4
guest 04.05.2010 09:23 # −1
guest 03.05.2010 11:14 # 0
Чем-же он прост?
Лишь в конечном исполняемом екзешнике и простоте использования.
rudvil 03.05.2010 11:17 # 0
guest 03.05.2010 11:19 # −1
Надо быть готовым к любому говну в коде когда дело качается плюсов.
guest 03.05.2010 11:23 # −1
Можешь его использовать...
guest 03.05.2010 11:29 # 0
guest 03.05.2010 12:16 # −8
guest 03.05.2010 12:24 # −7
guest 03.05.2010 12:37 # −8
guest 03.05.2010 14:46 # 0
В сложном слове, пишушемся через дифисы, только последнее слово склоняется.
Ваш К,О.
guest 03.05.2010 15:55 # 0
guest 03.05.2010 16:49 # +2
почему тогда `Ваш`?
guest 03.05.2010 16:51 # −4
ГдеЗдесьСиПлюсПлюсевский.
Я дельфист.
guest 03.05.2010 16:52 # −2
guest 03.05.2010 17:00 # 0
fxd
guest 04.05.2010 23:17 # −2
guest 03.05.2010 18:33 # −1
guest 03.05.2010 18:54 # −1
guest 03.05.2010 18:56 # −2
xXx_totalwar 03.05.2010 18:57 # −1
guest 03.05.2010 23:31 # −4
guest 04.05.2010 00:23 # +1
guest 05.05.2010 10:28 # −2
guest 05.05.2010 14:06 # −3
guest 05.05.2010 14:07 # −3
guest 05.05.2010 19:10 # −2
guest 05.05.2010 19:10 # −7
gost 17.08.2018 17:13 # 0
gost 17.08.2018 17:13 # 0
gost 17.08.2018 17:14 # 0
gost 17.08.2018 17:14 # 0
gost 17.08.2018 17:14 # 0
gost 17.08.2018 17:15 # 0
gost 17.08.2018 17:16 # 0
TheHamstertamer 27.07.2011 09:08 # +1
guest 03.05.2010 12:08 # +4
guest 03.05.2010 12:17 # 0
То что С++ стал популярен - лишь случайность.
Те, кто кроме C++ ничего другого не знают - просто не понимают, что мучаются, оттого плачут, колятся, но продолжают жрать кактус. Кто знает чуть побольше чем всего лишь жалкий C++, писать на этом позорище невообразимо противно.
guest 03.05.2010 12:20 # −1
guest 03.05.2010 12:20 # −1
guest 08.05.2010 15:32 # +1
guest 03.05.2010 12:25 # +4
guest 03.05.2010 13:21 # 0
zitzy 03.05.2010 15:22 # 0
guest 03.05.2010 15:45 # 0
ХОТЕТЬ!
guest 03.05.2010 15:52 # 0
guest 05.05.2010 15:31 # 0
guest 05.05.2010 15:53 # 0
guest 03.05.2010 17:34 # 0
zitzy 03.05.2010 17:42 # 0
guest 03.05.2010 17:49 # 0
Раз в полгода зарплату получил сумму в N-значимых разрядов и гуляй))
zitzy 03.05.2010 18:33 # 0
guest 03.05.2010 13:04 # +2
Это не макрос - это хер собачий. В унылом С++ нельзя написать настоящий макрос: ТрупСтрауса забыл спиздить эту фичу в втюхать в свой "шедевр", и скорее всего он вообще не знал что такое макры, для таких и препроцессор чудом кажется.
guest 03.05.2010 13:23 # 0
guest 03.05.2010 13:31 # 0
guest 03.05.2010 13:39 # 0
name-clause::= named name
variable-clause::= with-clause | initial-final | for-as-clause
with-clause::= with var1 [type-spec] [= form1] {and var2 [type-spec] [= form2]}*
main-clause::= unconditional | accumulation | conditional | termination-test | initial-final
Так жеж можно свой язык написать. О_о
guest 03.05.2010 13:47 # 0
Да именно так и надо подходить к делу:
есть задача - есть заточенный под нее язык, маленький, простой и логичный, на котором без труда может формально описать описать задачу, даже тупенькая секретутка, а не ломать голову в каком месте ты пропустил точку с запятой.
guest 03.05.2010 13:51 # 0
guest 03.05.2010 13:53 # +2
«Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp[1]»
«…в том числе и сам Common Lisp», а теперь понятно.
guest 04.05.2010 00:24 # −2
Мне нужно попроще, например С++.
guest 04.05.2010 00:25 # −2
guest 04.05.2010 05:05 # +1
С таким подходом тебе лучше в пещере жить, фиговым листом жопу вытирать, да подножным кормом питаться, а хули - проще некуда
guest 04.05.2010 20:20 # −2
guest 04.05.2010 20:54 # −5
guest 05.05.2010 13:16 # 0
guest 06.05.2010 08:22 # +4
guest 03.05.2010 12:16 # −1
guest 03.05.2010 12:28 # +5
guest 03.05.2010 13:18 # 0
guest 03.05.2010 14:58 # +1
>Это каша.
А это каша. Да. Но можно же делать это нормально. Язык свободный. Мультипарадигменный.
guest 03.05.2010 15:16 # +1
ложь и провокация. с++ изгадил все парадигмы за которые попытался ухватиться, в итоге получили то что получили то есть говно
guest 03.05.2010 16:17 # 0
обожди, тут еще не решили _зачем_ на цэ++ программировать :)
guest 03.05.2010 16:50 # +1
Гвозди Заржавелли 03.05.2010 13:04 # 0
Ну и ещё нет auto :)
guest 03.05.2010 13:05 # −4
какое точное описание С++
guest 03.05.2010 13:26 # +4
Видимо тебя в детстве родители заставили написать компилятор С++ на контролёр х51 и теперь ты до конца дней срешь кирпичами, написав его.
guest 03.05.2010 18:43 # +6
guest 03.05.2010 18:48 # 0
2.Даже если нужен то кода там сто тонн
guest 03.05.2010 20:53 # 0
А templаte - отдельная проблема. Очень неординарная вещь. С ним придётся прилично повозиться.
guest 03.05.2010 13:25 # +6
guest 03.05.2010 13:41 # −2
guest 03.05.2010 13:58 # +3
Если речь про программирование микроконтроллеров то замена ему Plain C, Forth (возможно придется новый язык создать).
Если веб, то тут пока PHP основную долю занимает, правда уже начинает терять проценты в пользу Python, Ruby.
Распределенное приложение? Erlang вне конкуренции.
Так может С++ вообще не нужен был никогда?
guest 03.05.2010 14:26 # 0
guest 03.05.2010 14:35 # 0
bober_maniac 03.05.2010 14:36 # 0
guest 03.05.2010 14:39 # 0
guest 03.05.2010 14:43 # 0
Легче программировать.
guest 03.05.2010 14:45 # 0
Это понятие довольно субъективное. Кроме того, оно не оправдывает того, что на C++ "программируют только идиоты".
guest 03.05.2010 15:10 # +4
guest 03.05.2010 15:11 # +1
guest 03.05.2010 14:44 # 0
bober_maniac 03.05.2010 15:01 # 0
В это входит большая скорость разработки и меньшая стоимость сопровождения.
guest 03.05.2010 14:47 # 0
Да хоть на Java, хоть на Haskell, хоть F# - все зависит от конкретной задачи.
>серверное приложение
Аналогично (тут может и эрлангу предпочтение стоит отдать).
guest 03.05.2010 14:27 # 0
Будто бы это удобно. Конечно С++ подходит для встроенных систем. Иной раз покупка более дорогого контроллера обойдется дешевли, чем поддержка сишного кода на более слабом контроллере дорогим медленно работающим программистом.
Дальше все микроконтролеры на С++ перейдут. Вот увидите.
Опять же для длительных математических расчетов не плохо С++ подходит.
>Forth
Он тоже для математических расчётов, но устарел.
guest 03.05.2010 14:44 # +1
Поживем - увидим. Вполне возможно, что этому на руку сыграет засилье быдлокодеров (и жителей Индии, занятых в аутсорсинге), да вот только качество кода останется тем же.
>Опять же для длительных математических расчетов не плохо С++ подходит.
Это тоже, между прочим, фанатизм.
Плюсовый код плохо поддается распараллеливанию, а то что удалось по тридам распихать еще и семафорить надо, абсолютно необязательный оверхед (в отличие от функциональных языков в которых распределенность "из коробки")
>Forth Он тоже для математических расчётов, но устарел.
Форт, как и Лисп, языки, хорошо подходящие к метапрограммированию, как к основному предназначению, со всеми вытекающими.
guest 03.05.2010 14:51 # 0
guest 03.05.2010 14:52 # 0
guest 03.05.2010 15:02 # 0
Компилятор не всегда засимофорит оптимально. Человек тоже не всегда оптимально.
Но у человека есть больше шансов, хотя напрячся придётся.
>семафорить надо, абсолютно необязательный оверхед
Просто вы сказали, что получаем не обязательный оверхед. А мы получаем его в обоих случаях. Как с функциональными языками, хоть без них. Семофорить нужно везде.
guest 03.05.2010 15:04 # 0
guest 03.05.2010 15:06 # 0
Но по возможностям на данном этапе развития автоматизированных систем задачу можно распаралелить более эффективно вручную. Хотя, кому это нужно...
guest 03.05.2010 15:06 # 0
guest 03.05.2010 15:06 # 0
Если человек, что называется "не шарит", то у него шансы 0.00
guest 03.05.2010 15:08 # 0
guest 03.05.2010 15:08 # 0
Хотя если он не шарит, то наверное ерланг и лисп тоже не вдупляет.
guest 03.05.2010 16:03 # +1
guest 03.05.2010 14:30 # 0
Опять же на С++ можно написать более быструю реализацию, хотя писать ручками.
bober_maniac 03.05.2010 14:36 # 0
guest 03.05.2010 14:40 # 0
guest 03.05.2010 14:40 # +1
guest 03.05.2010 14:57 # +3
ололо пока ты будешь это пейсать ктото получит баблосы за прогу слабаную на VB наколенке (Максимка Прохоров, например) и полетит на сейшеллы
guest6 08.05.2023 03:05 # 0
guest 03.05.2010 14:31 # 0
cfdev 03.05.2010 17:52 # 0
За компилируемым в натив C#-подобным язычком.
guest 03.05.2010 17:55 # 0
guest 03.05.2010 17:57 # +1
cfdev 05.05.2010 00:47 # +3
а натив рулил всегда (кроме выделений памяти).
pushkoff 05.05.2010 12:02 # −4
скорость разработки на C# быстрее всего лишь на проценты...
единственный плюс C# (ящитаю) это то что можно посадить студента и не бояться что он напорет боков дальше своей песочницы, отсюда сэкономленные нервы руководителя...
но если вдруг нам нужна производительность, C# будет долго и упорно портить нервы не только разработчикам и руководителю...
допустим сейчас я не могу вспомнить ни одной более-менее серьезной игры на С# и не думаю что появится что-то серьезное в ближайшие годы... а С++ опять набирает силы, так как
iPhone - ObjC, C++
Android - java, С++
Windows Phone - C#, C++
XBox360 - C#, C++
PS3 - C++
PSP - C++
Wii - C++
Bada - java, C++
Maemo - C++
PalmPre - C++
Symbian - C++ (хоть и урезанный)
у нас для всего этого один! движок на С++...
guest 05.05.2010 13:19 # −2
guest 05.05.2010 13:19 # −3
guest 06.05.2010 12:58 # +1
pushkoff 06.05.2010 14:45 # 0
100к приносит нормальная казуалка изданная на 3-4 порталлах... я уже много раз слышал о том что на питоне и шарпе их можно печь как пирожки, но выходят теже сроки но более высокие системные требования + секс со сторонними библиотеками, которые не любят издатели...
cfdev 07.05.2010 00:16 # 0
моно можно вкомпилировать статически в один экзешник.
моно можно сконфигурировать, чтобы занимала чото-то где-то 4 мб всего (т.е. ненужные либы стрипятся).
моно моно моно!
pushkoff 07.05.2010 22:00 # 0
guest 01.05.2011 14:11 # 0
cfdev 07.05.2010 00:13 # +1
для всего того же (кроме пары пунктов) можно запустить моно, при этом не пиша велосипеды (а я уверен, что половина вашего движка - велосипед)
pushkoff 07.05.2010 21:35 # 0
любой движок это велосипед... даже если он на С# или Java или даже на Brainfuck...
cfdev 08.05.2010 05:39 # 0
The current default minimal mono install requires less than 4 MB of disk space and 4 MB of memory (plus disk and memory required by the operating system and programs running on mono)
как я понял, 4 мб - это минимум, выше - память под само приложение.
+ эта инфа на их сайте судя по всему устаревшая, под моно 1.x, поэтому хз как щас.
guest 05.05.2010 20:51 # +1
Так уж и в 100000000000000 раз?!!!!111111
guest 05.05.2010 21:00 # −1
pushkoff 05.05.2010 21:50 # 0
напиши хоть один более менее взрослый шаблон, и поймешь что псикика у плюсеров покруче твоей будет...
guest 06.05.2010 12:54 # 0
Ты, мудаебина, ни одного настоящего шаблона в своей ебланской жизни и не видел даже. Ad-hoc от предикативного полиморфизма не отличишь, да ты и не знаешь что это, илита ебаная.
pushkoff 06.05.2010 14:30 # 0
guest 06.05.2010 14:42 # +1
Тебе об этом и говорят уже сотый пост, что С++ говноязык, имеющий к НАСТОЯЩЕМУ метапрограммингу лишь незначительное и косвенное отношение, но ты блядь, как дебил, все про одно: "шаблоны, шаблоны, шаблоны рулят, шаблоны быстрее ассемблера" - нахуй запущенная шаблонизация головного мозжечка.
guest 06.05.2010 14:43 # 0
Схуяли?
pushkoff 06.05.2010 14:49 # 0
пример плз... хоть посмотрю как люди живут...
guest 06.05.2010 15:15 # +5
pushkoff 06.05.2010 16:23 # −1
пример использования можно накидать, ну или хотя бы рассказать где это может пригодиться... я понимаю, что Nemerle является функциональным языком и очень глупо с вашей стороны сравнивать разные парадигмы программирования, но все же мне очень интересно...
guest 06.05.2010 16:43 # +4
Это и есть главная прелесть метапрограммирования - создать новое, выразив его через базовые вещи.
>> глупо с вашей стороны сравнивать разные парадигмы
Ты же постоянно орешь тут про шаблоны С++, выдавая их чуть ли не за божественные творения, но это далеко не так, пример выше показывает их ограниченность.
Как это применять? Да как хочешь, ограничений нет: можно отдельный DSL создать, можно синтаксис подогнать под задачу.
pushkoff 06.05.2010 16:58 # 0
guest 06.05.2010 17:10 # +2
Из разряда "зачем нам ЯП в машинных кодах надо програмить"
>>яве и шарпе
Reflection тоже считается причастным к метапрограммированию.
Нет смысла для этого использовать шарп- уже давно существуют и F# и Nemerle, и под JVM есть функциональные языки.
pushkoff 06.05.2010 17:15 # 0
guest 06.05.2010 17:42 # 0
guest 06.05.2010 22:30 # −1
А оно нужно?
xXx_totalwar 07.05.2010 04:48 # 0
чтото мне кажется что ты школьничек никера не понимаешь в функциональном программировании и тем более в DSLях
guest 25.05.2010 11:16 # −1
Я с дуба рухнул реализовывать самостоятельно while? У меня в С++ while есть и уже оптимизированный, а вы пользуетесь костылями.
guest 25.05.2010 11:18 # −1
guest 06.05.2010 21:32 # 0
cfdev 07.05.2010 00:19 # 0
guest 03.05.2010 18:00 # 0
http://ru.wikipedia.org/wiki/Vala
ГовноГовном.
cfdev 05.05.2010 00:46 # 0
Приводит в ужас промежуточная трансляция в си? Да ты уебок.
guest 05.05.2010 13:20 # 0
guest 05.05.2010 13:42 # 0
guest 05.05.2010 17:34 # 0
guest 05.05.2010 18:01 # 0
Язык-то повыше уровнем, чем быдлоцпп
guest 05.05.2010 18:29 # 0
guest 05.05.2010 18:46 # 0
guest 05.05.2010 20:52 # 0
guest 05.05.2010 20:55 # 0
guest 06.05.2010 08:07 # 0
guest 06.05.2010 08:25 # 0
guest 06.05.2010 08:25 # 0
cfdev 07.05.2010 01:32 # 0
Нисколько, если делать грамотно. Си - это лоувел, это почти ассемблер. Поэтому если "трансляционные шаблоны" написать верно, то скорость будет такая же. Плюс к тому же для си сделано столько оптимизаций, что ты для своего недокомпилятора в жисть не реализуешь.
guest 05.05.2010 19:12 # 0
cfdev 07.05.2010 00:27 # −1
Так вот, что там делает компилятор - не должно волновать, ибо на выходе будет то же самое. Я вот чего-то не вижу жалоб по поводу того, что компилятор промежуточно выдаёт .o-файлы. А это ведь такой же промежуточный слой, как и си-код.
Какая разница для программиста?
К тому же, для си сделаны лучше оптимизации. Поэтому у трансляции в си такие плюсы:
1) 100% кроссплатформенность
2) лучшая оптимизация на любой платформе
3) нет ненадобности писать компиляторо-зависимые фронтенды к бэкендам (к гцц напр.)
4) отсутствие времени на отладку, борьбу с багами на уровне машинного кода в случае, если делать собственный компилятор - и так далее.
Я не понимаю, почему люди боятся трансляции в си. Видимо, недостаточно "круто", "игрушечно". Писькомеры, иопта.
guest 07.05.2010 08:12 # −4
Ты это своей бабушке скажи, когда будешь компилить на 16 битную, 32 битную и 64 битную платформу.
cfdev 07.05.2010 10:28 # 0
guest 03.01.2011 00:08 # −1
PAAMAYIM_NEKUDOTAYIM 17.08.2018 16:38 # +1
На самом деле у проблемы есть решение: не использовать инт. Есть ещё одно решение: вообще никогда не использовать инт.
Что же тогда использовать? А использовать int32_t, int64_t, int16_t, uint32_t, uint64_t, uint16_t --- вот это всё. Пускай на 32-битной машине int64_t будет эмулироваться двумя регистрами, зато он вместит требуемый нам диапазон значений.
guest8 17.08.2018 20:54 # −999
AnalCastingManager 17.08.2018 21:40 # 0
roskomgovno 18.08.2018 23:43 # 0
roskomgovno 18.08.2018 23:50 # 0
roskomgovno 18.08.2018 23:51 # 0
а теперь пойди найди мне c99 расшщирения в 16ти битном компиляторе
guest8 18.08.2018 23:57 # −999
roskomgovno 19.08.2018 00:00 # 0
большинство 16ти разраядного кода написано под всякие borland c, которые (по причине выпуска в середине 90-х) не умеют c99
guest8 19.08.2018 01:26 # −999
roskomgovno 19.08.2018 01:40 # 0
тогда у нас либо не получится хранить указатель на функцию (что портит стандрт как мне кажется), либо у нас tiny model размер с гулькин хуй один сегмент, и я не очень понимаю что там можно написать насях. Загрузчик для MBR?
>> теоретически 16-разрядный код может быть и за пределами x86. Мало ли в мире архитектур...
Сомневаюсь что в 2K18 кому-то интересны такие архитектуры. x86-то интересен только ради обратной совместимости. Хотя конечно где-то могут работать какие-нить станки с ЧПУ или оборудование конца 80-х, но я не очень уверен что под них пишут _новый_ софт
guest8 19.08.2018 01:49 # −999
roskomgovno 19.08.2018 01:54 # 0
Но вообще я не копегаген в эмбеддед (у нас тот вроде Борманд любитель всякой мелкотни). Я знаю только про армы, mipsы и атомы, не исключено что где-то кто-то юзает 8бит.
Хотя я не очень понимаю зачем.
bormand 19.08.2018 02:15 # 0
Энергопотребление, цена. Ты же не будешь ставить i7 в ёлочную гирлянду? Хотя эту нишу походу отберут мелкие 32-битные армы.
Ну и ардуинщики же -- всё-таки порог вхождения у авр на порядок ниже чем у армов.
roskomgovno 19.08.2018 02:20 # 0
Так 8 бит действительно используют ардуинщики?
Вау.
bormand 19.08.2018 02:26 # 0
А тортики ты лазером нарезаешь?
Ну CPLD можно, но они будут подороже мелких контроллеров. А к большинству FPGA тебе ещё внешнюю флешку надо и т.п.
roskomgovno 19.08.2018 02:34 # 0
Нет, но я и процессоры в гирлянду не ставлю. У меня была в детстве гирлянда, мне кажется там был такой элемент, он нагревался и разрывал цепь. Нет?
vistefan 19.08.2018 02:45 # 0
Современные гирлянды, даже самые китайские, умеют сложно мигать, по разным программам. В них есть чип. Обычно он выглядит как размазанная по плате пластмассовая сопля, (это, видимо, маленькие танзисторы залиты каким-то пластиком?), но иногда он прямо осязаемый, чёрный жучок с ножками.
roskomgovno 19.08.2018 02:48 # 0
Интересно, а может быть там asic?
bormand 19.08.2018 02:30 # 0
roskomgovno 19.08.2018 02:34 # 0
666_N33D135 19.08.2018 18:26 # 0
Сконпелял пустую программу main(){}, а DMC выдал COM-файл почти на 6 Кб. Судя по тому, что он юзает EXE2BIN он сперва конпеляет в EXE. Не знаю, сколько сегментов он юзает, но он там чото мутит с сегментными регистрами, все call'ы и jmp'ы near. И в COM-файле много лапши и говна: Правда не все флажки работают. И ещё дополнительно нужно устаналивать либы и улититы.
guest8 20.08.2018 00:50 # −999
guest8 20.08.2018 00:52 # −999
PAAMAYIM_NEKUDOTAYIM 17.08.2018 16:02 # 0
bar-u-xoloda 19.08.2018 18:44 # 0
bar-u-xoloda 19.08.2018 19:34 # 0
guest 03.01.2011 00:12 # −1
а ты подумай, кто здесь сейчас что-то меряет в посте выше?
danilissimus 03.05.2010 13:52 # −2
сдохни. написать "using namespace std;" нельзя было? или буст уже мозги окончательно высосал?
guest 03.05.2010 14:33 # 0
guest 03.05.2010 14:34 # 0
guest 03.05.2010 14:42 # 0
guest 04.05.2010 00:27 # 0
Ты каждый раз пишешь std::, а это лишнее, если один раз напишешь: using namespace std;
guest 04.05.2010 00:32 # 0
guest 05.05.2010 18:02 # 0
guest 05.05.2010 20:53 # 0
Dummy00001 05.05.2010 00:21 # +1
млин пять буков им лень напечатать. или typedef описательный добавить.
pushkoff 05.05.2010 12:04 # +1
а вообще от этих 5 символов профита больше, так как интелисенс выведет список...
guest 05.05.2010 13:21 # −3
guest 03.05.2010 16:25 # 0
guest 03.05.2010 16:27 # −1
Что С++ говно.
guest 03.05.2010 16:28 # −1
Что С++ говно.
guest 03.05.2010 18:54 # 0
guest 03.05.2010 16:28 # −5
guest 03.05.2010 16:32 # +5
guest 03.05.2010 16:33 # +6
guest 04.05.2010 00:27 # 0
guest 05.05.2010 20:54 # 0
guest 03.05.2010 16:45 # −2
guest 03.05.2010 16:41 # 0
guest 03.05.2010 16:47 # 0
унылые распиаренные поделки
guest 03.05.2010 16:49 # 0
guest 03.05.2010 17:02 # 0
у нас базы данных на FOXPRO !
guest 03.05.2010 17:16 # 0
guest 03.05.2010 16:43 # 0
guest 03.05.2010 16:46 # 0
guest 04.05.2010 00:28 # 0
guest 05.05.2010 20:54 # 0
guest 03.05.2010 16:47 # 0
Я пишу на С#, молодой и уже есть девушка. Уезжаю в Москву.
guest 03.05.2010 16:55 # 0
шаблоны - полное говно, обычный синтаксический сахар, бездумно (и через анус) засунутый в язык
>>>>Кодогенерация, метапрограммирование
это все мимо си-плюс-плюса, ибо ни нормального оптимизатора не прикрутишь, ни дсл'ей не напишешь
guest 03.05.2010 17:02 # 0
Я о томже.
guest 03.05.2010 19:00 # 0
WUT? И как же ты заменишь шаблоны другими средствами языка (си), диабетник?
>это все мимо си-плюс-плюса, ибо ни нормального оптимизатора не прикрутишь, ни дсл'ей не напишешь
Оптимизаторы у плюсов лучшие из всех языков тащемта.
guest 03.05.2010 19:09 # +1
В си? Никак, и с++ тоже т.к. нет у них средств для расширения языка.
>Оптимизаторы у плюсов лучшие из всех языков тащемта.
Хуй там, плюсцовое дерьмецо чтоб соптимизировать надо пару раз сотоне помолицца. А вот чистый си оптимизируется хорошо
guest 03.05.2010 19:17 # +1
Раз никак, то шаблоны - это НЕ синтаксический сахар.
>А вот чистый си оптимизируется хорошо
Ну ещё бы, ведь вся рутинная работа за компилятор проделана человеком.
guest 03.05.2010 19:25 # 0
Ты дурак. Вменяемой и равноценной замены нет. И если бы ты знал что шаблоны раскрываются обычной синтаксической подстановкой то чушь бы не нес.
>Ну ещё бы, ведь вся рутинная работа за компилятор проделана человеком.
Никто не заставляет на сях кодить, пиздуй сосать у своего божка Страуструпа, и не забудь его в обосранную попку чмокнуть.
guest 03.05.2010 19:32 # 0
Ну ёпта, а я о чём? "синтаксических сахар" - это возможность языка, без которой можно обойтись ценой чуть большей писанины.
>пиздуй
пиздуй сам, и byval с byref не перепутай, когда быдлокодить будешь.
guest 03.05.2010 19:37 # 0
template - когда их оформляешь - столько приходится писать, что пиздец. Так, что хуй.
guest 03.05.2010 19:40 # 0
Строгая типизация, что поделаешь. Для того-же php при метапрограммировании приходится сто тонн тестов писать и всё равно потом окажется, что что-то неучтено.
guest 03.05.2010 21:06 # 0
Это ему не в плюс. Да и к чему сравнивать уебешный пхп и С++?
guest 06.05.2010 05:44 # +2
guest 03.05.2010 19:42 # 0
Ты точно ебанутый, конкретно и на всю свою головку. Тебе, бляденышу, сказали уже, что "шаблоны раскрываются обычной синтаксической подстановкой" и ты, тлять, после этого смеешь эту хуйню взвякивать? Если интелектишки не хватает так и скажи.
guest 03.05.2010 19:57 # 0
Мне похуй, что тут вякнул малограмотный обсос.
guest 03.05.2010 20:05 # 0
guest 03.05.2010 20:08 # 0
Это ложь. Ссылку давай?
guest 03.05.2010 20:09 # 0
Если бы ты хоть что-то в этом понимал, то не вякал бы. Знал бы, что это не так.
guest 03.05.2010 20:12 # −1
>Тебе, бляденышу, сказали
>Тебе, бляденышу, сказали
>Тебе, бляденышу, сказали
>Тебе, бляденышу, сказали
>Тебе, бляденышу, сказали
guest 03.05.2010 20:22 # +2
Хотя шаблоны предоставляют краткую форму записи участка кода, на самом деле их использование не сокращает исполнимый код, так как для каждого набора параметров компилятор создаёт отдельный экземпляр функции или класса
guest 03.05.2010 20:35 # 0
И? Все это знают, ибо читали мануал к языку. Или для тебя это новость?
guest 03.05.2010 20:40 # +1
guest 03.05.2010 20:41 # 0
guest 03.05.2010 20:57 # +2
И не я. Кстати, тебе бы поучиться мысли выражать. Шаблоны - они работают как (сюрприз!) шаблоны. Я думал, это очевидно.
Если же ты, в скудоумии своём, полагал, что шаблоны позволяют одному и тому-же машинному коду обрабатывать объекты разного типа, то тебе стоит открыть словарик живого великорусского языка и почитать там статью "шаблон".
А если тебе всё-таки дозарезу надо одним кодом обрабатывать разные типы, то для этого в плюсах есть другие средства. А шаблоны - это средство метапрограммирования, а не синтаксический сахар, дурья твоя башка!
guest 03.05.2010 21:17 # 0
этот высер даже упоминаться не должен в треде в котором прозвучали слова Лисп и Форт
guest 04.05.2010 14:13 # 0
guest 04.05.2010 23:20 # 0
А я ему..."
nil 04.05.2010 15:31 # 0
guest 05.05.2010 20:55 # 0
nil 05.05.2010 21:27 # 0
Даешь 1000 комментов к концу недели!
guest 06.05.2010 08:28 # 0
guest 03.05.2010 16:56 # +6
подметать двор
guest 03.05.2010 16:57 # −7
guest 03.05.2010 17:03 # +5
guest 05.05.2010 20:56 # −1
guest 05.05.2010 20:57 # −3
guest 03.05.2010 16:57 # 0
только один этот недоязычек осилил и решил мАскву покорять? не слабое чсв
guest 03.05.2010 17:01 # −5
Сам недочеловечек.
guest 03.05.2010 16:59 # +5
ололо посмотрим на тебя в твои 35, молодой C#-програмер
guest 03.05.2010 17:01 # 0
guest 03.05.2010 17:07 # +8
А ты все еще хочешь программировать на Цэ++?
guest 03.05.2010 17:02 # 0
guest 03.05.2010 17:05 # +4
бухаю в асинхронном потоке
guest 03.05.2010 17:37 # 0
guest 05.05.2010 20:58 # 0
nil 04.05.2010 15:28 # 0
Кодим на чистом C, ЧСХ!
guest 04.05.2010 16:04 # 0
nil 04.05.2010 16:26 # 0
Но поскольку я выгляжу в точности как описан программист на C++ (хоть и не программирую на C++), то мы друг другом не интересуемся!
guest 04.05.2010 18:43 # 0
Хотя у меня ситуация хуже. Я программирую, приемущественно, на С++... :D
>то мы друг другом не интересуемся!
У нас тоже они есть, но интереса друг к другу нет.
А у вас девушки выглядят, как С++ программисты?
У нас нет.
nil 04.05.2010 22:17 # 0
guest 04.05.2010 23:21 # −1
guest 05.05.2010 19:14 # 0
guest 04.05.2010 18:45 # 0
Первым делом первым делом самолеты
Ну а девушки а девушки потом.
/////////////////////////////////////////
О С++ поговорили, теперь пора и о девушках. :)
nil 04.05.2010 22:17 # 0
guest 04.05.2010 22:22 # 0
guest 04.05.2010 23:20 # −2
guest 05.05.2010 13:23 # 0
nil 05.05.2010 17:23 # 0
guest 05.05.2010 20:59 # 0
guest 05.05.2010 21:18 # 0
nil 05.05.2010 21:29 # 0
Мы только что вдвоем...
наладили автотесты, поговорили про тонкости распределения ресурсов в нитях и потоках и обсудили новую систему сборок.
И обратно каждый к своей работе:)
guest 06.05.2010 08:29 # 0
Лучше бы наладили контакты. Или они не красивые?
nil 06.05.2010 10:56 # +1
Красивая... Но копипейстом грешит!
guest 06.05.2010 15:08 # +1
guest 03.05.2010 16:54 # 0
guest 03.05.2010 17:14 # −2
говнокодность Basic = 10 говнокодностей С++ - значит басик в 10 раз хуже С++
и наоборот
Java = -2 C++ по шкале говнокодности - значит жабка лучше ц++ в 2 раза
guest 03.05.2010 17:19 # +1
guest 03.05.2010 17:24 # 0
guest 03.05.2010 19:02 # 0
К какой?
trollface.jpg
guest 03.05.2010 19:17 # −1
guest 03.05.2010 19:24 # +1
Алсо, а жабомашина или дотнетомашина под под спарки вообще есть? А если openbsd вместо солярки?
guest 03.05.2010 19:34 # +1
guest 03.05.2010 19:37 # 0
guest 03.05.2010 19:50 # 0
Да что ты. То, что ты в говнокодерской сфере крутишься - твои половые проблемы и на всеобщее обозрение выносить не стоит. А кому то нужен не быдлоязычок С++ а куда более вменяемые и имеющие jit языки
guest 03.05.2010 20:00 # 0
guest 03.05.2010 20:10 # +1
Тебе, ебанату, ведь "ВМ не уперлась", так что иди фапни на свой канпелятор С++
guest 03.05.2010 20:24 # +1
guest6 09.11.2023 03:59 # 0
потому она всегда тормозит, пока не прогреется
>и она кросплатформенная.
лол
guest6 09.11.2023 04:07 # 0
Верёвочка лопнула
И jit'а прихлопнула.
guest6 09.11.2023 04:13 # 0
https://www.youtube.com/watch?v=r67lhwSgLyY
guest6 09.11.2023 04:16 # 0
guest6 09.11.2023 05:22 # 0
guest6 09.11.2023 07:15 # 0
guest6 09.11.2023 12:35 # 0
guest6 09.11.2023 12:32 # 0
guest6 09.11.2023 10:42 # 0
guest6 09.11.2023 11:03 # 0
guest6 09.11.2023 11:09 # 0
guest6 09.11.2023 12:35 # 0
Англичане говорят "you are welcome", раньше вроде говории "I am not at all".
Нидеры говоря "graag gedaan", или еще "tot uw dienst"
guest6 09.11.2023 13:10 # 0
guest6 09.11.2023 13:16 # 0
guest6 09.11.2023 13:43 # 0
https://www.fluentu.com/blog/spanish/youre-welcome-in-spanish/
guest6 09.11.2023 13:53 # 0
guest6 09.11.2023 13:57 # 0
guest6 09.11.2023 14:12 # 0
guest6 09.11.2023 14:36 # 0
guest6 09.11.2023 14:46 # 0
guest6 09.11.2023 17:37 # 0
guest6 09.11.2023 18:16 # 0
Ты не понел. Как живя в Аргентине организовать поездку по топовым местам?
Это тоже самое, что живя в 1024--динске посетить Камчатку. Близко же, хуле.
guest6 09.11.2023 18:22 # 0
Сибирь там, Урал, Владивосток, всё вроде рядом, что в той части России. Сел, да поехал
guest6 09.11.2023 21:06 # 0
Ни денег не жаль -
Что ж тут поделать.
Если решил уезжать -
Уезжай,
Незачем медлить.
Кто здесь любил тебя,
Кто тебя знал -
Все не помеха.
Вышел из дома,
Пришёл на вокзал,
Сел и поехал.
Стрелки, как белки,
Навстречу летят
С ветки на ветку.
Люди и звери
Подходят к путям -
Брось им монетку.
Полка, футболка,
Вагон-ресторан,
Карты, потеха.
Вышел на станции,
Хлопнул стакан,
Сел и поехал.
Так пересёк ты
Свой Божий мирок,
Вжился, пригрелся.
Так и доехал
До райских ворот -
Кончились рельсы.
Вышел, размялся,
Спросил сигарет -
Просто для смеха.
Взял на перроне
Обратный билет,
Сел и поехал.
guest6 09.11.2023 21:28 # 0
https://www.youtube.com/watch?v=RRLZLLH7xQU
guest6 09.11.2023 18:24 # 0
guest6 21.11.2023 04:09 # 0
guest6 21.11.2023 04:42 # 0
Как там новый призеднт, который живет с сестрой и четырьями клонами своей покойной собаки?
guest6 21.11.2023 18:41 # 0
guest6 21.11.2023 14:28 # 0
guest6 24.10.2024 22:27 # 0
Вроде "bueno" могут сказать, если меня не глючит. А так в основном молчат и улыбаются.
guest6 09.11.2023 13:52 # 0
guest6 09.11.2023 15:15 # 0
guest6 09.11.2023 13:15 # 0
After 50 years of association with the famous Jewish name, the kindergarten in the village of Tangerhütte said that it wanted a more “diverse” identification.
Going forwards it will now be known as “world explorer kindergarten”.
literary-hitler.jpg
guest 03.05.2010 17:10 # +8
guest 03.05.2010 17:38 # +1
guest 03.05.2010 17:39 # 0
guest 03.05.2010 17:41 # 0
guest 05.05.2010 19:14 # −1
guest6 09.11.2023 04:08 # 0
guest6 09.11.2023 04:26 # 0
guest6 09.11.2023 07:05 # 0
cfdev 03.05.2010 17:41 # +2
> hack
Сами авторы буста признают, что хаки и говно.
guest 03.05.2010 17:42 # 0
guest 04.05.2010 00:29 # 0
cfdev 07.05.2010 14:18 # 0
guest 07.05.2010 15:12 # 0
cfdev 07.05.2010 16:52 # 0
// И. о. Метаметакэпа.
guest 07.05.2010 17:05 # 0
guest 07.05.2010 17:21 # +2
guest6 09.11.2023 13:55 # 0
// И. о. метаметаметакэпа.
guest 03.05.2010 17:43 # 0
тут уже разобрались что к чему))
cfdev 03.05.2010 17:47 # +1
В жопу такой "высокоуровневый язык", лол.
guest 03.05.2010 17:54 # +1
или за слова отвечать не привык?
cfdev 03.05.2010 18:02 # +2
Все ссылочные типы моего "C-boost"'а через type-punning приводятся к базовому типу (структура базового типа лежит вверху layout'а каждой структуры). Базовый тип содержит функцию-диспетчер, работающую с сообщениями (простые целочисленные значения) - (функция-диспетчер winapi'шного окна ведёт себя подобным образом). В общем, любой объект, который подтип базового типа, может принимать сообщения.
А дальше:
Понимаешь, сука? Итератор посылает сообщения объекту (через макрос CF_SEND в функциях cfIterator_HasNext и cfIterator_Next). А там уже у каждого объекта своя реализация сообщений cfList_Count_MSG и cfList_Get_MSG.
К слову, в итераторе есть специальное кеширующее поле, которым пользуется класс LinkedList, чтобы сохранять текущий нод.
К слову, итератор - fail-fast, при изменении версии контейнера во время итерирования выкинется исключение (легче сделать исключения в си, чем становиться с++-гомосексуалом).
cfdev 03.05.2010 18:09 # 0
используется так:
guest 03.05.2010 18:10 # 0
Это точно Си? Т.е. свой ООП с блекджеком и деффачками?
cfdev 03.05.2010 18:15 # 0
guest 03.05.2010 18:18 # 0
cfdev 03.05.2010 18:20 # 0
guest 03.05.2010 18:22 # 0
cfdev 03.05.2010 18:28 # 0
Истинный ООП юзает сообщения, они у меня есть. Базовый класс такой:
Все "типы"-потомки должны хранить вверху своих структур вот так:
Всё, терь MyCoolClass может отвечать на сообщения (функцию m_dispatch видишь?), только в конструкторе надо сначала проставить функцию-диспетчер.
И никакой ебаный с++ не нужен, ололо.
Инкапсуляция, ящитаю, не долнжа быть совсем уж fool-proof. Всё реализуется на основе соглашений. А соглашение такое, что поля с префиксом m_ нельзя трогать.
Полиморфизм реализуется через отправку сообщений функции m_dispatch (как в смолтоке).
Что значит "нормаьлное наследование"? Семантически оно у меня есть. Синтаксически нет проверок на тайп-паннинг.
guest 03.05.2010 18:30 # +2
nil 04.05.2010 22:23 # 0
guest 04.05.2010 23:22 # 0
xXx_totalwar 05.05.2010 04:53 # 0
nil 05.05.2010 17:32 # 0
guest 03.05.2010 18:30 # +1
++
guest 04.05.2010 23:23 # 0
guest 04.05.2010 23:25 # 0
guest 04.05.2010 23:26 # 0
guest 03.05.2010 18:32 # 0
cfdev 03.05.2010 19:32 # 0
я не претендую на то, чтобы из си сделать ФЯ.
guest 03.05.2010 21:03 # +1
>>>>>могу сделать generic-итератор по коллекциям любого типа, лол.
Ты писал???? Оказывается все не так просто в твоем "высокоуровневом си"
guest 03.05.2010 21:33 # 0
cfdev 03.05.2010 21:56 # 0
guest 04.05.2010 00:30 # +2
Переменная? О_о
guest 05.05.2010 05:17 # 0
cfdev 05.05.2010 06:43 # 0
Карри, Хиндли-Милнер и прочие, конечно, молодцы, но для практики их изыскания малопригодны (выведение типов не особо нужно, без каррирования легко обойтись и то дэ).
а вообще это не лучше и не хуже, а просто другой подход.
cfdev 05.05.2010 06:49 # 0
xXx_totalwar 05.05.2010 14:04 # +1
слишком категорично, то что ты это не применяешь не означает ненужность этих фич
guest 05.05.2010 12:00 # 0
xXx_totalwar 03.05.2010 18:35 # 0
атата =) а кто тут у нас говорил что смолток для говнокодеров, а? =))))))
cfdev 03.05.2010 19:09 # 0
вот например в ВизуалБейсике мне нравится декларативная подписка на события. но это не умаляет его говённости.
xXx_totalwar 03.05.2010 19:15 # 0
на то он и первый ооп язык, чтобы идеи обкатать
cfdev 03.05.2010 19:16 # 0
xXx_totalwar 03.05.2010 19:19 # 0
guest 03.05.2010 20:11 # 0
guest 03.05.2010 22:15 # +2
guest 04.05.2010 00:32 # 0
Будто бы это так долго, что я успею поесть....
А вообще твои виртуальные функции - тот же вызов по указателю, а то и хуже.
guest 04.05.2010 00:38 # +1
Ты может и нет, а я да.
>А вообще твои виртуальные функции - тот же вызов по указателю, а то и хуже.
В c++ для итерирования по контейнеру не используются виртуальные функции. Ну, обычно.
guest 04.05.2010 12:08 # 0
Хотелось бы на это посмотреть.
>В c++ для итерирования по контейнеру не используются виртуальные функции.
Зато твои эти виртуальные функции понапиханы у тебя во все дыры в твоем С++.
cfdev 05.05.2010 07:00 # 0
Зато компилируется не три часа.
если бы знал, что там ещё делает с++-компилятор under the covers, при твоей паранойее "тормозов" тебе толлько и на ассемблере кодить.
В дотнете для foreach'а энумераторы делаются через реализацию интерфейса IEnumerator, а интерфейсные методы вызываются там через такой же диспатчинг.
в objc так же должно быть. в java наверняка так же.
guest 05.05.2010 12:09 # 0
Про компилируется 3 часа - пиздежь и провокация. По крайней мере в STL, не знаю как в буст.
Вот поэтому дотнет и сливает при обработке больших объемов данных.
cfdev 05.05.2010 22:00 # 0
оверхед там милипиздрический, objc весь построен на этом.
guest 05.05.2010 22:15 # 0
Конечно, для итерирования по коллекции объектов это все сойдет, там много не нужно, но для простой обыденной обработки массивов/списков, это слишком накладно.
cfdev 05.05.2010 22:29 # 0
cfdev 05.05.2010 22:35 # 0
guest 06.05.2010 08:23 # 0
> красивое, защищенное от многих ошибок
Ну да, макросы во все поля. Они прямо охуенно защищают от ошибок.
Свой велосипед не может быть надежнее чем встроенное средство, по определению.
cfdev 07.05.2010 00:39 # 0
я гнал не про это, а про то, что всё реализуется достаточно просто. необязательно разрывать себе мозг извращённой фантазией трупа страуса.
я в с++ как-то особо не видел шаблонов и вирт. функциях при обращении к самому лоу-левелу, там все сразу скуксиваются и скатываются к си-подобию. так же и у меня.
guest 05.05.2010 13:33 # 0
С# вообще тормозит. О нём мы не говорим. С++ так не делает.
cfdev 07.05.2010 00:40 # 0
троллинг же. C# тормозит только на стартапе. в моно можно применить aot. в java сделали демона, благоаря которому стартап как у натива.
выйди из анабиоза.
guest6 09.11.2023 13:01 # 0
сука ну как можно такую хуйню писать а
guest6 09.11.2023 18:25 # 0
guest6 09.11.2023 18:27 # 0
Короче, джава сосет хуя у шарпа. Sad, but true.
guest6 09.11.2023 18:28 # 0
guest6 09.11.2023 18:30 # 0
Вообще забавно: двадцать лет питушки врали нам что благодаря JITу можно нанять анскильных программистов и они сделают всё хорошо, и всё равно когда тебе нужен нормальный перформанс, ты берешь плюсы, сишку, или хотя-бы Rust.
guest 05.05.2010 13:36 # 0
Не знаешь - молчи в тряпочку.
cfdev 05.05.2010 22:01 # 0
Как без диспатчинга тут обойтись - я не знаю.
guest 05.05.2010 13:36 # 0
И где скорость твоего диспатчингого метода?
Зачем пользоваться Си, если сам делаешь такие тормозные вещи, типа диспатчинга?
guest 05.05.2010 13:37 # 0
guest 05.05.2010 13:39 # 0
В С++, если не пользоваться всякими медленно компилирующимеся фичами - компилируется с той же скоростью.
guest 05.05.2010 13:39 # 0
xXx_totalwar 05.05.2010 13:59 # 0
guest 05.05.2010 15:58 # 0
guest 05.05.2010 15:59 # −1
Лень - дорога к прогрессу.
xXx_totalwar 05.05.2010 16:01 # 0
cfdev 05.05.2010 21:59 # 0
в foreach'е?
guest 06.05.2010 08:35 # 0
А в бууст_фориче для массивов просто проход по индексам.
Для сложных объектов бууст_форич использует также иттератор.
guest 06.05.2010 08:37 # 0
guest 06.05.2010 08:39 # −2
cfdev 07.05.2010 00:43 # 0
ну и зачем так извращаться? если я в компайл-тайме знаю все типы, нахрен мне тогда обобщённое итерирование? в ооп-си для обычных массивов я сделаю обычный for-цикл + индексирование. в местах, где нужно обобщение, которое в компайл-тайме не определить (напр., апкаст) - сделаю диспатчингом.
тут, оказывается, у вас всё упирается в синтаксис (в бусте для всего юзается boost_foreach), а не в производительность.
guest 07.05.2010 08:20 # 0
boost_foreach определяет всё на этапе компиляции, поэтому на производительность это не влияет вообще. Просто подставляется нужный вариант.
В отлиичие от тебя - я пользуюсь одним и темже для всего, а ты для разных контейнеров будешь использовать разные подходы (это копипаста, только скрытая).
cfdev 07.05.2010 10:30 # 0
компайл-тайм-полиморфизм мне нахрен не упёрся. не настолько туп
pushkoff 07.05.2010 21:23 # −1
guest 24.05.2010 13:02 # −2
guest 24.05.2010 11:30 # 0
Это как?
guest 03.05.2010 19:06 # 0
cfdev 03.05.2010 19:19 # 0
Лол! ООП головного мозга это когда ООП суётся во все поля, т.е. туда, где он нахрен не нужен.
А я это сделал, потому что надо. с++ - говно, остальные йезыги или тянут рантаймы и зависимости по хуй знает сколкьо, или кривы, малодокументируемы и хуёня. Остаётся праведный си.
Алсо, что скажешь насчёт GObject? Наверное его тоже долбоёбы пишут? А ты весь такой умный в парадном.
cfdev 03.05.2010 19:22 # 0
но нет, они у меня как в Аде, простыми константами целочисленными.
guest 03.05.2010 19:28 # 0
О, маладец. А если надо, скажем, имя файла не существующего передать наверх, или номер строки, на которой парсер сломался, или код ошибки сторонней либы, ты как поступаешь? Переменную глобальную заводишь?
cfdev 03.05.2010 19:50 # 0
У меня исключения - это _исключительный_ случай, т.е. ты думал, что файл есть, а его хопа, и нет. Исключительная ситуация, ахтунг! И блок для обработки.
Если ошибка являются частью контракта/интерфейса, т.е. отсутсвие файла - нормальное явление, то используются другие механизмы (как вариант - возврат через bool, или проверка заранее на наличие файла и т. д.).
Доп. информация выводится в stderr.
guest 03.05.2010 19:57 # 0
И что ты с ней потом делаешь? Читаешь и распихиваешь по переменным и используешь в обработке исключения?
cfdev 03.05.2010 19:58 # 0
guest 03.05.2010 20:01 # 0
cfdev 03.05.2010 20:08 # 0
guest 03.05.2010 20:33 # 0
cfdev 05.05.2010 07:06 # 0
guest 03.05.2010 20:34 # 0
Вы зря тратите время заказчика.
guest 03.05.2010 20:49 # 0
cfdev 05.05.2010 07:03 # +1
в с++ от программиста ещё скрыт синтаксис и здравый смысл
pushkoff 05.05.2010 12:09 # −5
guest 05.05.2010 13:38 # +3
pushkoff 05.05.2010 14:21 # −4
guest 05.05.2010 16:25 # +2
наконец-то ты стал получать удовольствие от поедания кактуса, или просто на грибы переключился?
pushkoff 05.05.2010 16:37 # −3
cfdev 05.05.2010 22:03 # +2
хаха, среди апологетов с++ два лагеря: 1) бравирующие школьники 2) программисты низшего и среднего звена, у которых нет выбора
Ты откуда вот? Почему в тебе столько любви?
pushkoff 05.05.2010 22:12 # 0
я отношусь к людям которые не останутся без работы когда китайцы освоят C# и Java аутсорс...
guest 06.05.2010 22:36 # 0
guest 07.05.2010 12:15 # 0
Бравирующий школьник
guest 07.05.2010 13:33 # +2
cfdev 05.05.2010 22:02 # +1
guest 05.05.2010 13:40 # −3
guest 05.05.2010 13:42 # +1
Просто нужно потратить день и разобраться с этим.
guest 05.05.2010 13:54 # +2
pushkoff 05.05.2010 14:19 # 0
guest 05.05.2010 15:09 # +2
guest 05.05.2010 16:01 # 0
Всё равно 99% от выполнения приложения потратися на сборку мусора. :D
guest 05.05.2010 16:24 # +1
guest 05.05.2010 17:36 # −1
pushkoff 05.05.2010 17:47 # 0
guest 05.05.2010 14:03 # 0
guest 05.05.2010 15:10 # −2
cfdev 03.05.2010 19:56 # 0
во-первых, зачем это надо? чтобы в самом верхнем стекфрейме напечатать "такой-то файл не найден, извините"? так это выводится без проблем через stderr сразу там, где возбуждается исключение.
если нужно здесь же на месте создать файл, которого нет, то это происходит обычно в том стекфрейме, который и обладает ссылкой на имя файла.
прогонять имя файла выше имхо говнокод.
guest 03.05.2010 19:58 # +1
guest 03.05.2010 19:40 # 0
guest 03.05.2010 17:59 # 0
guest 03.05.2010 18:01 # 0
cfdev 03.05.2010 18:06 # 0
Я и не претендую :)
guest 03.05.2010 18:51 # 0
guest 03.05.2010 19:53 # −2
Нахуй это нужно? Самому нужно оптимизировать хвостовую рекурсию, а не давать на откуп компилятору, который может и не справиться.
Вообще нахуй рекурсию. Она всегда эмитируется через циклы и более эффективно.
guest 03.05.2010 20:26 # 0
guest 03.05.2010 20:44 # 0
Тот, хотя-бы производил впечатление интелекта выше среднего.
У вас интелект - олигофрена.
guest 03.05.2010 20:29 # 0
guest 05.05.2010 15:10 # 0
Умные люди, а что это такое? Объясните, плс.
xXx_totalwar 05.05.2010 16:13 # 0
type inference - автовыведение типа
зы подробности в гугле
guest 03.05.2010 18:45 # +1
guest 03.05.2010 18:49 # 0
guest 03.05.2010 19:26 # 0
guest 03.05.2010 19:27 # +2
guest 03.05.2010 19:31 # 0
guest 03.05.2010 19:31 # 0
guest 04.05.2010 20:25 # 0
guest 03.05.2010 19:32 # +1
guest 03.05.2010 19:42 # +1
guest 03.05.2010 19:43 # 0
guest 03.05.2010 19:43 # 0
guest 04.05.2010 00:33 # 0
guest 03.05.2010 19:55 # +1
Вообще в этих функциональных языках часто используется рекурсия.
В результирующем экзешнике её не будет?
Могу я ожидать переполнения стека из-за рекурсии функционального языка?
guest 03.05.2010 20:28 # 0
guest 03.05.2010 20:05 # 0
http://govnokod.ru/best/comments?time=ever
guest 03.05.2010 20:14 # +2
guest 03.05.2010 20:18 # 0
guest 03.05.2010 20:27 # 0
xXx_totalwar 03.05.2010 20:33 # 0
этот страх и ужас с++0х??
>появились нормальные лямбды
так маленькие дети поступают - в рот всякую гадость кладут, ну им то простительно, но тут то взрослые дядьки-разрабы компиляторов
guest 03.05.2010 21:03 # −1
guest 03.05.2010 21:04 # −1
xXx_totalwar 03.05.2010 21:10 # +1
складывается впечатление что разрабов на сковородке уже жарят, оттого и спонтанные фичи в стандарт вносят
guest 03.05.2010 22:28 # 0
пруф?
guest 03.05.2010 20:28 # 0
guest 03.05.2010 20:32 # −2
guest 04.05.2010 05:01 # +2
шизофазия в терминальной стадии, поциент неизлечим
guest 04.05.2010 11:55 # 0
Этот человек хотел сказать, что:
В новом стандарте С++0х введут в язык новую языковую конструкцию for_each и гарбидж коллектор. А если не введут, то введут во время принятия следующего стандарта. Что не понятного?
guest 04.05.2010 23:29 # 0
guest 05.05.2010 10:24 # 0
pushkoff 05.05.2010 12:12 # +1
guest 05.05.2010 13:44 # −1
guest 05.05.2010 13:53 # 0
pushkoff 05.05.2010 15:12 # 0
guest 05.05.2010 15:19 # +3
guest 05.05.2010 16:04 # +3
pushkoff 05.05.2010 16:09 # 0
guest 05.05.2010 16:21 # +1
Да уж, многим такое не под силу. Гордись этим каждую секунду своей серенькой жизни.
pushkoff 05.05.2010 16:32 # 0
конечно мне обидно, что обезьяны, которые не подходят нам на должность скриптовиков, получают в аутсорсе з/п соизмеримую с моей... но мне приятно то, что приходя на собеседование в любую аутсорс контору, мне предлагают должность не ниже чем лид проекта и зп в 2-2.5 раза больше чем я получаю сейчас... поменять искусство на обезьяний труд можно в любой день моей жизни, и естественно, когда нибудь я это сделаю...
guest 05.05.2010 17:06 # +2
И жизнь станет серой и унылой. Не торопитесь.
Я тоже так думаю. =)
guest 05.05.2010 18:49 # 0
Один обсирает, второй чуть ли не дрочит! И ЧСВ немереное.
pushkoff 05.05.2010 18:54 # −1
guest 05.05.2010 19:04 # +1
pushkoff 05.05.2010 19:09 # +1
guest 05.05.2010 19:14 # +4
И кто же тут обезьяна, мудень?
pushkoff 05.05.2010 19:26 # 0
это миф из разряда "в C# нет утечек памяти"... скорость разработки на С# точно такая же как и на С++, единственная разница в профессионализме исполнителя, и именно из-за этого разработка станет более дешевой, и именно на этом сориентирована вся рекламная компания вокруг С# (можешь пересчитать сколько раз тут упоминалось что С# проще)...
а так все одно и тоже искать баги, оптимизировать, рефакторить надо в любом языке (даже в ПоХаПе)...
guest 05.05.2010 19:31 # +2
Так хули ты, тогда орешь что С++ илитный?
pushkoff 05.05.2010 19:33 # 0
guest 05.05.2010 21:26 # +2
Ты его тоже не осилил, пока ты сортир драил, услышал как прогеры в курилке С++ обсуждали и решил тут так же выебнуться, инфа 100%.
pushkoff 05.05.2010 21:45 # −3
guest 06.05.2010 05:27 # 0
guest 06.05.2010 19:49 # 0
guest 06.05.2010 19:49 # 0
Звучит как сотонисты. Так оно и есть. :D
guest 06.05.2010 19:57 # 0
guest 06.05.2010 19:57 # 0
pushkoff 07.05.2010 21:37 # 0
cfdev 05.05.2010 21:51 # +2
pushkoff 05.05.2010 21:54 # −3
а вообще я очень уважаю С, но я понимаю преимущества С++ перед ним...
guest 06.05.2010 05:26 # +2
guest 06.05.2010 08:59 # +1
http://blog.gamedeff.com/?p=84
А именно в строке:
typedef TT * iterator;
А дальше в цикле используется для прохода по массиву, типа
iterator i;
i++;
Приэтом это является итераторам и может использоваться в стандартных алгоритмах STL, типа сортировки, копирования и прочее.
pushkoff 06.05.2010 13:06 # 0
смотрю тебя сильно напрягает то что я умнее... я знаю людей которые умнее меня, и вместо того чтоб их унижать, я учусь и развиваюсь, чтоб хотя бы не отставать и среднестатический С++ник поступает также... но вот среднестатический явист или шарпист или ПоХаПешник после недели работы считает себя чуть ли не пупом земли, требуя огромных зарплат и новых должностей, из-за этого цена продукта растет а качество падает... я ни разу не встретил ни одного русскоязычного блога о шарпе в котором человек описал, что беспокоится о количестве памяти или производительности своих программ на шарпе, при этом каждый второй англоязычный блог этим кишит... пересчитай всех своих друзей шарпистов которые знают что такое рефлекшн (reflection)... хватило пальцев одной руки? странно, они же профессионалы, и могут заткнуть за пояс любого С++ника, а пишут как индусские программисты на С (но у индусов хоть оправдание есть, в С этого нет)... уметь программировать и знать 20 разных фреймворков - это разные вещи... задумайся...
guest 06.05.2010 13:16 # 0
pushkoff 06.05.2010 14:37 # 0
guest 06.05.2010 14:41 # +2
guest 06.05.2010 08:59 # +2
guest 06.05.2010 22:39 # −2
cfdev 07.05.2010 00:53 # +1
юзай валгринд, и ни одна ошибка не пройдёт мимо.
с++виндузятники о таки продвинутых технологиях не слышали?
guest 05.05.2010 18:03 # 0
Школьники совсем обнаглели нынче.
guest 05.05.2010 18:50 # 0
guest 05.05.2010 19:19 # 0
guest 05.05.2010 19:20 # +3
guest 05.05.2010 19:28 # 0
guest 06.05.2010 08:55 # 0
xXx_totalwar 06.05.2010 12:30 # +1
guest 05.05.2010 15:13 # −1
А нам же лучше. Пусть школота набежит, а у профессионалов будет больше работы и бабла.
guest 05.05.2010 15:27 # +2
guest 05.05.2010 15:27 # +3
guest 05.05.2010 16:05 # +5
guest 05.05.2010 18:10 # +3
guest 05.05.2010 18:51 # +3
pushkoff 05.05.2010 18:56 # +3
пруф здесь http://lurkmore.ru/95%25_населения_—_идиоты
PAAMAYIM_NEKUDOTAYIM 17.08.2018 15:57 # 0
guest 05.05.2010 15:16 # 0
Это полезная вещь и для некоторых задач ускоряет работу приложений. Тк позволяет освобождать память в отдельном потоке, когда проц не загружен работой, например ожидает файла с диска.
Хотя при правильном проектировании - он загружен всегда.
На крайний случай обычный оптимизированный delete, также может освобождать память в отдельном потоке.
guest 05.05.2010 15:19 # 0
Для соответствующих задач, естественно. И загружен именно полезной работой, а не перевыделением памяти и копированием мегамассива в мегамассив форичем.
pushkoff 05.05.2010 15:25 # 0
guest 05.05.2010 16:07 # 0
pushkoff 05.05.2010 16:21 # −1
техника чем-то напоминает пул...
профит есть если часто выделять и освобождать блоки одинакового размера...
guest 05.05.2010 17:09 # 0
А "указатели" на эти списки расположены в отсортированном по размеру элементов списка "массиве"?
pushkoff 05.05.2010 17:20 # 0
guest 05.05.2010 18:52 # +2
pushkoff 05.05.2010 18:58 # +1
guest 05.05.2010 19:03 # +2
pushkoff 05.05.2010 19:06 # −1
guest 05.05.2010 22:11 # +1
Ничего плохого, но и ничего хорошего.
guest 06.05.2010 08:43 # +3
guest 05.05.2010 17:11 # +1
Тогда new для таких объектов перегружать...
cfdev 07.05.2010 01:00 # +5
COM - говноархитектура Майкрософт, поэтому 100% для сборщика мусора с++ Маййкрософт для своего компилятора введут костыль для таких случаев. В дотнете же сделали такие костыли.
guest 07.05.2010 08:22 # 0
guest 04.05.2010 23:29 # 0
А их раздают с лозунгом: "Сборщик мусора в каждый дом"?
guest 05.05.2010 18:53 # 0
guest 05.05.2010 19:20 # 0
guest 05.05.2010 19:32 # +3
guest 05.05.2010 19:48 # 0
guest 05.05.2010 21:05 # 0
guest 05.05.2010 21:30 # +1
guest 06.05.2010 08:44 # −2
guest 03.05.2010 20:37 # +1
it's just like paradise!
capcha 6665 agreed
guest 03.05.2010 20:46 # +2
Мега тред.
С++ VS ВсеВсеВсе.
ВсеВсеВсе выигрывает! Даже мой визуал бейсик. С++ дерьмецо.
guest 03.05.2010 20:56 # 0
guest 03.05.2010 21:36 # 0
guest 04.05.2010 23:30 # 0
guest 05.05.2010 10:23 # 0
guest 06.05.2010 08:53 # 0
guest 06.05.2010 08:53 # +2
guest 23.05.2010 05:23 # 0
guest 23.05.2010 11:02 # 0
guest 03.05.2010 21:00 # −1
Не вижу. Быдлокодеры на всём_всём_всём (CamelCase для пидоров) только орут как стая мартышек и не в состоянии привести реальных аргументов. Придираться к раскрытию макросов - это вообще бред.
guest 03.05.2010 21:02 # 0
Макросы вообще вредны языку.
Их использование - верный признак говнокода.
xXx_totalwar 03.05.2010 21:05 # +1
слишком толсто
пруф будет?
xXx_totalwar 03.05.2010 21:07 # 0
guest 03.05.2010 21:09 # 0
guest 03.05.2010 21:20 # +3
XD))
guest 03.05.2010 21:31 # −3
с++ говно
PHP рулит и в этом никто не сомневается.
guest 03.05.2010 21:35 # −3
Рулит Перл!
guest 03.05.2010 22:46 # +1
guest 04.05.2010 09:08 # −1
guest 04.05.2010 23:30 # 0
guest 05.05.2010 05:02 # 0
guest 05.05.2010 10:25 # 0
хуй==хуй
guest 05.05.2010 15:20 # −1
Ви таки не пrавы!
guest 05.05.2010 21:05 # 0
guest 05.05.2010 21:06 # 0
nil 05.05.2010 21:30 # 0
guest 06.05.2010 02:12 # 0
cfdev 06.05.2010 03:06 # 0
guest 06.05.2010 08:45 # 0
guest 06.05.2010 22:41 # 0
guest 06.05.2010 08:46 # 0
guest 06.05.2010 08:46 # 0
guest 06.05.2010 08:47 # 0
guest 06.05.2010 22:41 # 0
guest 06.05.2010 08:48 # 0
guest 06.05.2010 08:48 # 0
cfdev 07.05.2010 01:01 # 0
guest 07.05.2010 08:23 # 0
guest 25.05.2010 11:33 # 0
guest 03.05.2010 21:32 # 0
guest 03.05.2010 21:35 # 0
rudvil 03.05.2010 21:57 # 0
guest 05.05.2010 18:54 # 0
Налетай! Засирай!
guest 03.05.2010 22:49 # 0
Ты вообще хоть рубль на своем Common Lisp заработал?
guest 03.05.2010 23:02 # +1
«Алгоритмы + структуры данных = программы» — Н. Вирт.
А. Степанов когда-то придумал, что алгоритмы и структуры данных должны быть порознь. Идея посетила его голову, когда он находился в состоянии бреда, вызванного отравлением грибами. Тем не менее, с появлением С++ и шаблонов в нём, идея оказалась воплотима, и была разработана библиотека STL, позже вошедшая в Стандарт.
guest 04.05.2010 05:00 # −3
guest 03.05.2010 23:19 # −4
В него почти полностью входит Си. Просто стал чуток типобезопаснее.
Можно также невозбранно пользоватся longjmp, malloc, не пользоваться классами и шаблонами.
Стало просто больше возможностей.
guest 04.05.2010 04:59 # +1
guest 04.05.2010 23:33 # −2
Если что-то делаешь кривое, то отдельно нужно длинную строку написать, что-бы согласиться.
Что-то типа пароля проверки на вменяемость, а когда таки напишешь, то увидев это уродство - откажешся от него и напишешь нормально без говнокодства.
guest 05.05.2010 10:22 # +3
удивительно, но разработчикам буста это не помешало наговнякать
guest 05.05.2010 15:22 # 0
guest 06.05.2010 22:42 # −2
Так от всего не защищает просто.
nil 04.05.2010 22:43 # +1
Why bother?
pushkoff 05.05.2010 12:22 # −1
guest 05.05.2010 12:24 # 0
pushkoff 05.05.2010 14:00 # +1
guest 05.05.2010 14:39 # +1
pushkoff 05.05.2010 15:19 # 0
guest 05.05.2010 16:10 # 0
pushkoff 05.05.2010 16:22 # −3
guest 05.05.2010 17:13 # −2
Из вопросов только кватернионы не знаю. Но если нужно будет, то как-нибудь разберусь...
guest 05.05.2010 20:31 # +3
guest 05.05.2010 21:32 # +4
cfdev 07.05.2010 01:04 # +2
guest 07.05.2010 08:24 # −3
pushkoff 07.05.2010 21:27 # −1
guest 25.05.2010 11:35 # 0
pushkoff 25.05.2010 12:17 # 0
guest 05.05.2010 16:21 # +3
guest 05.05.2010 13:00 # +1
pushkoff 05.05.2010 14:16 # −3
вот можно еще почитать http://blog.gamedeff.com/?p=43
guest 05.05.2010 15:25 # 0
guest 05.05.2010 15:42 # +1
guest 05.05.2010 16:11 # +1
А ты первый раз слышишь? Видно в институте не учился и философию не проходил... Об этом ещё Платон говорил.
pushkoff 05.05.2010 16:14 # −3
guest 05.05.2010 19:01 # +5
Утечкой называют память, которая не прикаких обстоятельствах не может быть освобождена до завершения программы, но не используется.
А в данном случае эта память освободится, если понадобится.
guest 05.05.2010 20:36 # −3
cfdev 07.05.2010 01:08 # +2
в сишарпе и в яве хорошие сборшики мусора, а все проблемы - по незнанию.
мнго памяти съедается на стартапе, потому что менеджер памяти делает это специально, потому что он видит, что в системе её ещё дохера. поэтому выделение памяти в них в некоторых случаях десяток раз быстрее происхоит, чем у с++, т.к. не нужно вызывать системные функции, ибо несколько десятков мб УЖЕ в нашем распоряжении. а выделение памяти под объекты - это краеугольный камень ООП-прогарммирования, и тут-то с++ сливает без костылей.
pushkoff 07.05.2010 21:31 # 0
сори, но вы читали хоть что нибудь о менеджерах памяти?? какие системные функции?? проблемы менеджеров памяти в поиске свободных блоков а не в системных функциях... системные функции вызываются при выделении хипа (очень большого блока памяти, для множества объектов) и не зависят от языка программирования, они в любом случае вызовутся в любой программе...
cfdev 08.05.2010 05:52 # 0
про системные функции - ну я посмтоянно вижу злоупотребления...
pushkoff 08.05.2010 17:14 # −1
guest 05.05.2010 15:26 # 0
А я забываю писать delete и все переодически это делают. Как после этого их нет? Есть и налицо.
pushkoff 05.05.2010 16:18 # 0
guest 05.05.2010 17:15 # 0
Желательно бесплатные.
Хотя ломанные тоже сойдёт. :D
pushkoff 05.05.2010 17:31 # 0
мне этого всегда хватало...
недавно вышло обновление vld (2.0), сам не пользовался но хвалят...
под iPhone есть своя тулза она показывает расход памяти во времени.
Крутыми и платными не пользовался около 2 лет, поэтому названий уже не вспомню...
для статического анализа лучшей считается PVS Studio (http://www.viva64.com/pvs-studio/) на хабре и в блоге интела есть примеры использования...
guest 05.05.2010 17:40 # 0
guest 05.05.2010 18:56 # 0
guest 05.05.2010 18:57 # 0
guest 05.05.2010 18:58 # 0
guest 05.05.2010 19:01 # 0
guest 05.05.2010 19:22 # 0
guest 05.05.2010 19:23 # −1
guest 06.05.2010 08:50 # 0
cfdev 07.05.2010 01:11 # 0
ищу аналог под винду. визуалстудио нет и не будет.
guest 05.05.2010 18:39 # 0
guest 05.05.2010 19:23 # 0
guest 08.05.2010 13:12 # −2
guest 03.05.2010 23:21 # +1
То что он раскрывается в мега конструкцию - ничего плохого.
В результирующий экзешник ничего лишнего не поподёт.
Например для массива будет обычный цикл for от константы до константы. В чем вообще проблема, то?
guest 04.05.2010 04:58 # 0
guest 05.05.2010 21:10 # 0
guest 06.05.2010 08:51 # 0
guest 03.05.2010 23:58 # +2
true ? 0 : foo
это продукт исключительно машинной генерации, или особо увесистой макросной конструкции.
rudvil 04.05.2010 00:03 # 0
guest 04.05.2010 00:38 # 0
В бусте сам макрос форича занимает 44 кб, вместе со всеми классами, что он использует.
guest 04.05.2010 00:45 # 0
http://www.boost.org/doc/libs/1_38_0/boost/foreach.hpp
Но реально дела обстоят ещё и хуже, тк туда инклудятся прочие h файлы:
#include <cstddef>
#include <utility> // for std::pair
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/mpl/logical.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/noncopyable.hpp>
#include <boost/range/end.hpp>
#include <boost/range/begin.hpp>
#include <boost/range/rend.hpp>
#include <boost/range/rbegin.hpp>
#include <boost/range/iterator.hpp>
#include <boost/range/reverse_iterator.hpp>
#include <boost/type_traits/is_array.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_abstract.hpp>
#include <boost/type_traits/is_base_and_derived.hpp>
#include <boost/iterator/iterator_traits.hpp>
#include <boost/utility/addressof.hpp>
# include <new>
# include <boost/aligned_storage.hpp>
# include <boost/utility/enable_if.hpp>
# include <boost/type_traits/remove_const.hpp>
guest 04.05.2010 00:48 # +3
guest 04.05.2010 01:16 # −2
guest 04.05.2010 04:57 # +1
Пруф?
guest 04.05.2010 08:41 # +2
guest 04.05.2010 09:24 # +2
guest 04.05.2010 09:28 # +1
это важно, да
guest 04.05.2010 23:34 # +2
cfdev 05.05.2010 06:45 # +2
pushkoff 05.05.2010 12:23 # −2
guest 05.05.2010 13:46 # −3
guest 05.05.2010 14:15 # +2
guest 05.05.2010 15:31 # −3
guest 05.05.2010 18:16 # −2
guest 04.05.2010 00:49 # −1
guest 04.05.2010 04:56 # +2
guest 04.05.2010 10:26 # 0
guest 04.05.2010 10:41 # 0
> вас послушать - так все кодят на лиспе и яве.
Узнаю /ц/тардов Нульчана, ох, узнаю.
guest 04.05.2010 10:47 # 0
guest 04.05.2010 23:35 # 0
guest 04.05.2010 11:18 # 0
guest 04.05.2010 12:07 # −5
guest 04.05.2010 13:19 # +2
guest 04.05.2010 16:07 # 0
guest 04.05.2010 23:35 # −2
guest 04.05.2010 23:36 # 0
guest 06.05.2010 08:20 # 0
А мы можем это посредине дня сделать вручную. Пускай мы спотеем. От жары пот испарится и мы обгарим. Пусть С++ не напомнит нам, что мы не одели термозащитный костюм с последовавшим сгоранием заживо.
Но зато мы можем хоть как-то, а вы нет. В этом сила С++. Многообразие тяжёлых, но непревзойдённых возможностей.
guest 06.05.2010 12:40 # +1
guest 06.05.2010 15:14 # 0
cfdev 07.05.2010 01:12 # 0
guest 08.05.2010 15:43 # +3
rudvil 04.05.2010 23:34 # +1
guest 05.05.2010 00:28 # −3
guest 05.05.2010 05:01 # +1
guest 05.05.2010 13:47 # −3
guest 05.05.2010 17:40 # 0
guest 05.05.2010 18:42 # 0
guest 05.05.2010 19:01 # −1
guest 05.05.2010 19:07 # 0
guest 05.05.2010 19:07 # +5
guest 05.05.2010 21:12 # 0
guest 05.05.2010 21:33 # 0
не надо их жалеть ))))
абсыкаем по полной!
guest 05.05.2010 21:19 # 0
guest 06.05.2010 08:04 # +5
Наверное, когда они видят девушку, то любуются её иерархией классов, множественным наследованием, методами, помеченными ключевым словом virtual, указателями*, const_cast<тип>(var), перегруженным operator new() и прочими С++ ными костылями, а потом удивляются, почему она им не даёт. Схуяли?(с++)
guest 06.05.2010 12:39 # +4
nil 06.05.2010 14:24 # +3
guest 05.05.2010 20:48 # −1
guest 08.05.2010 02:33 # −1
guest 06.05.2010 08:07 # 0
guest 06.05.2010 08:08 # +1
guest 06.05.2010 08:09 # −1
guest 06.05.2010 08:10 # +2
guest 06.05.2010 08:11 # +1
Она не дала.
guest 06.05.2010 08:11 # +2
Epic Fail.
guest 06.05.2010 18:35 # +2
guest 06.05.2010 14:35 # 0
guest 06.05.2010 15:20 # 0
guest 06.05.2010 16:38 # 0
guest 06.05.2010 17:59 # 0
guest 06.05.2010 18:22 # +2
http://lisper.ru/articles/icfpc-2009-virtual-mashine
(Как написать виртуальную машину для ICFPC-2009 на Common Lisp)
В 100-ню строк пишут интерпретирующую и компилирующую виртуальную машину.
Помоему профит очевиден. Никакой Максим Прохоров со своим визуал бейсиком не напишет это за пару часов. На визуал бейсик это будет в пару тысяч строк. Я уеду на канары, а максимка будет ждать следующей работы, хоть и не долго, а С++ будут до посинения дрочить своё прошлое творение, превысив все допустимые сроки сдачи.
guest 06.05.2010 18:42 # 0
guest 06.05.2010 18:40 # 0
Может быть вы подскажите: на каких языках мне стоит научиться программировать в этой жизни и почему? Минусы тоже можете указывать, для полноты картины.
guest 06.05.2010 19:22 # 0
Логическое программирование - Пролог (альтернатив нет)
Скриптовые языки - Питон, Руби
Системное программирование - Си хорошо подходит (для всяких микроконтроллеров еще Форт)
Прикладное - C#, Java
>>на каких языках мне стоит научиться программировать
А это сам решить должен.
guest 06.05.2010 19:29 # 0
cfdev 07.05.2010 01:14 # −3
ооп и функциональщина - это подходы, это семантика, а не синтаксис. упираться в синтаксис - для говнокодеров.
heil orthodox c! 14/88
Snake2101 06.05.2010 19:26 # 0
guest 06.05.2010 19:29 # 0
guest 06.05.2010 19:31 # +1
guest 06.05.2010 19:44 # +3
>>Схуяли?(с++)
>>это у вас, с++обезьян, всё тормозит и глючит. не то что си.
>>Баттхерт с++ного гомосека
>>Вы имеете право в жопу друг с другом долбиться
>>Насри себе в рот
>>Да ты уебок
guest 06.05.2010 19:54 # 0
guest 06.05.2010 19:55 # 0
guest 07.05.2010 07:52 # 0
guest 08.05.2010 15:49 # 0
guest 06.05.2010 20:08 # −3
guest 06.05.2010 20:12 # 0
"Вот же школоты-то понабежало"
Двойка тебе, школоло. Завтра родителей в школу.
guest 06.05.2010 21:06 # +2
Я так понимаю, функциональные языки больше подходят для решения некоторых типов задач, типа молотилки данных:
Трансляция, классификация данных, ммм... 1)Прошу привести конкретные области или ваши проекты, для которых функциональные языки больше всего подходят, чем императивные?
2)Может они не будут делать это максимально быстро, зато я буду разрабатывать проекты максимально быстро, я верно понимаю?
3)Для каких областей функциональные языки подходят плохо? Я так понимаю, для GUI? Приведите ещё примеры?
guest 06.05.2010 21:07 # −2
guest 06.05.2010 21:08 # −2
guest 07.05.2010 05:41 # +3
Тебе и не светит - для этого нужен мозг, не распидарасенный императивом.
guest 07.05.2010 07:58 # +3
guest 06.05.2010 22:48 # +4
guest 07.05.2010 05:38 # 0
http://s.lurkmore.ru/images/c/c7/Z150_03.jpg
guest 07.05.2010 05:14 # +3
Нет. Не верно, не надо искать серебряных пуль - надо решать задачу наиболее подходящим инструментом: на Лиспе драйвер не написать, С++ не подходит для метапрограминга.
guest 07.05.2010 07:54 # −2
guest 07.05.2010 07:55 # −3
guest 06.05.2010 21:32 # 0
Меня больше интересуют языки, продолжающие развиваться. Те, для которых появляются новые компиляторы. Те, что генерируют производительный код, пусть даже в небольшой ущерб удобству и возможностям. Меня не интересует лёгкость обучения. Ну для начала меня больше интересует платформа Windows. Пока меня больше интересуют не трансляторы, а именно компиляторы, тоесть по возможности не JIT и не MSIL компиляторы, хотя это не так важно. Ну и для удобства начинания какая-нибудь гуёвая IDE.
Я смотрю в сторону F# (он же OCaml + перделки и шлюхи .NET Framework), какой-то из диалектов Lisp (Видимо Схема?), Erlang (распределённые вычисления и многоядерное программирование) и Nemerle. 2) Правильно я смотрю?
3)Erlang, видимо не так актуален, тк задачи его уровня крайне редки. Ещё он использует порты для общения с внешним миром, что тоже не так приятно. Видимо он генерирует не самый оптимальный код для компьютеров простых смертных, у которых нет десятка ядер?
4)Если Lisp, то выбирать какой диалект?
Вообщем жду советов. =)
guest 06.05.2010 22:59 # 0
guest 06.05.2010 23:32 # 0
guest 06.05.2010 23:43 # 0
guest 07.05.2010 13:34 # 0
guest 07.05.2010 17:56 # 0
guest 07.05.2010 18:13 # 0
guest 07.05.2010 18:14 # 0
guest 08.05.2010 15:58 # −1
guest 08.05.2010 16:10 # +5
pushkoff 08.05.2010 17:16 # −5
пруф или небыло...
xXx_totalwar 07.05.2010 05:01 # 0
на текущий момент хаскелл - авангард функционального программирования
guest 07.05.2010 05:23 # 0
guest 07.05.2010 05:21 # 0
>>Пока меня больше интересуют не трансляторы, а именно компиляторы
>>Если Lisp, то выбирать какой диалект?
Common Lisp и его реализация от Steel Bank (SBCL http://www.sbcl.org/)
guest 06.05.2010 23:30 # +4
http://www.gotdotnet.ru/blogs/mihailik/3588/10842/
А именно, финализатор (жалкое подобие деструктора) может вызываться во время сборки мусора, но это сборка мусора может так и не произойти до завершения программы, а это значит, что важные захваченные ресурсы могут долгое время не освобождаться и в таких случаях эта работа ложится на программиста.
Это почти тоже самое, что заставлять программиста вызывать delete вручную, особенно в свете исключений, возникающих в С# по поводу и без повода.
В С++ такой траблы нет, хотя это не оправдание, тк у него есть другие.))
guest 06.05.2010 23:43 # −1
cfdev 07.05.2010 01:16 # +1
Вася имеет мерседес, но у мерседеса сломан прикуриватель.
Гена имеет запорожец и у него таких проблем нет.
Orange_Ikarus 08.10.2018 00:56 # 0
guest 07.05.2010 09:30 # +1
cfdev 07.05.2010 10:36 # +1
guest 07.05.2010 13:31 # +2
cfdev 09.05.2010 19:39 # +1
судя по мануалу, по крайней мере мону можно повредить, там написано что при эмбеддинге нативные потоки нужно регистрировать с помощью mono_gc_register_thread.
cfdev 10.05.2010 15:54 # 0
> Additionally, if (a) the structure is located on the stack, and (b) the structure contains only blittable types, then if you pass a structure to an unmanaged function by-reference, the structure will be passed directly to the unmanaged function, without an intermediate unmanaged memory copy. This means that you may not need to specify the Out attribute to see changes made by unmanaged code.
Получается, что мы получаем указатель в пределах managed-стека? Можем ли мы из unmanaged-кода пойти вверх по managed-стеку и покуралесить?
cfdev 10.05.2010 19:31 # 0
Проверил, можно!
В общем, на стороне managed-кода:
На стороне С:
> hacktest1.exe
13
10
> mono hacktest1.exe
12
10
Т.е. я смог изменить значение аргумента managed-метода. Также я смог менять локальные переменные, следующие за структурой DummyStruct.
Говногость 10.05.2010 19:35 # 0
:)
Говногость 10.05.2010 19:41 # 0
cfdev 10.05.2010 19:47 # +2
Говногость 10.05.2010 20:15 # 0
Говногость 09.05.2010 11:00 # 0
Кого имеют?
Говногость 09.05.2010 11:14 # 0
Я даже больше скажу. Тк это происходит в другом потоке, а в Виндовс вытесняющая многозадачность, то финализатор может вызватся в то время, когда какие-нибудь данные используются, и их испортит, если он их изменяет.
За этим дополнительно придётся следит с помошью синхронизации.
Отсюда ещё одна проблема. Пусть в проге один поток. Когда система будет работать в режиме не хватки памяти - она запросит гц собрать кучу. И окажется, что в каком-то финализаторе есть ожидание какого-нибудь семафора, но он сейчас не установлен, тк мы находимся в критической секции обновления данных, которые синхронизируются семафором.
Получается основной поток ожидает выделения памяти, а выделение ожидает сборки мусора, а сборка мусора ожидает финализатор, который ожидает возможности финализирования, ввиде разрешения от основного потока семафором.
Мне интересно, как эта проблема решается? Вообще имеет ли решение?
Неужели не использовать финализаторы, а делать это вручную?
Говногость 09.05.2010 11:24 # 0
Обходится конечно легко.
Путём выделения из кучи нового объекта, если есть конструктор копирования. Не приятно, конечно.
Вот так вот потеря производительности на пустом месте.
Помоему вот это тоже нормально:
Говногость 09.05.2010 13:39 # 0
cfdev 09.05.2010 19:33 # 0
частично для этого можно использовать struct's
Говногость 09.05.2010 22:42 # 0
xXx_totalwar 10.05.2010 15:59 # +2
нет такого конструктора
и вообще value-типы всегда передаются по значению
cfdev 10.05.2010 16:05 # +1
>нет такого конструктора
зато есть очень ценное "int i = new int();"
xXx_totalwar 10.05.2010 16:09 # +1
я понял) ты - кэп
cfdev 10.05.2010 18:34 # +1
ирония моего поста риторически вопрошае, нахрен интегеру пустой конструктор.
наверное для default(T).
костылизм.
Говногость 10.05.2010 19:37 # 0
:)
Говногость 10.05.2010 19:38 # 0
Видимо, только в идеальном мире.
PAAMAYIM_NEKUDOTAYIM 17.08.2018 15:55 # 0
guest 07.05.2010 17:56 # +12
xaionaro 11.05.2010 20:10 # +1
PAAMAYIM_NEKUDOTAYIM 17.08.2018 15:54 # 0
TOPT 26.04.2018 13:36 # 0
guest 25.05.2010 01:03 # +1
guest 30.05.2010 20:53 # +2
guest 30.05.2010 21:58 # +3
good_web_master 19.02.2012 14:29 # −2
dekameron 01.07.2011 16:20 # +1
Govnocoder#0xFF 20.07.2011 11:56 # 0
Fai 28.08.2011 23:37 # 0
CPPGovno 01.10.2011 19:39 # 0
guest 28.04.2012 04:44 # −4
guest6 21.11.2023 06:39 # 0
guest 25.05.2013 16:46 # 0
Ребяа, кончайте кодить, вы уже тут почти все ебанулись головой апклаву.
И да, давайте дохуярим до тысячи.
PAAMAYIM_NEKUDOTAYIM 17.08.2018 13:42 # 0
bar-u-xoloda 17.08.2018 14:55 # 0
guest6 21.11.2023 06:38 # 0
guest8 09.04.2019 12:09 # −999
guest6 09.11.2023 18:05 # 0
guest6 21.11.2023 05:24 # 0
Друзья, всегда просите своего диллера четко проговаривать название вещества. "ф" и "т" легко перепутать
guest6 21.11.2023 06:18 # 0