Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.197.212] |
|
Страницы: (6) 1 2 [3] 4 5 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Ага, а пользовательские функции, кастомные форматы чисел и константы, а также плагины к нему есть? |
Сообщ.
#32
,
|
|
|
Цитата Smike @ Ага, а пользовательские функции, кастомные форматы чисел и константы, а также плагины к нему есть? А ты уже написал калькулятор, который понимает +, -, /, *, и еще докучи стандартных перловых примочек? Тогда ты упустил начальные этапы проектирования |
Сообщ.
#33
,
|
|
|
Это к перлу? Если да, то
Цитата Ага, а пользовательские функции, Само собой. Цитата кастомные форматы чисел Объектами реализуемо. Цитата и константы, Обижаешь! Цитата а также плагины к нему есть? Что такое "плагины", не знаю, а модули есть и много, см. CPAN. |
Сообщ.
#34
,
|
|
|
Кстати, Python рулит.
Вот калькулятор на нём: http://gazette.linux.ru.net/lg78/articles/rus-krishnakumar.html |
Сообщ.
#35
,
|
|
|
У-у-у. Народ уже совсем юмора не понимает...
|
Сообщ.
#36
,
|
|
|
Relan понимает. Это я для пасквилисто-депхинистов заначил:)
|
Сообщ.
#37
,
|
|
|
Lucifer, то, что макросам в С++ не место, с этим я согласен. Но вот в С они вписываются очень и очень органично.
|
Сообщ.
#38
,
|
|
|
Цитата Lucifer, то, что макросам в С++ не место, с этим я согласен. Но вот в С они вписываются очень и очень органично. Макросы - это разговоры в пользу бедных. В сях ничего более цивилизованного нету, вот и приходится. Это видимо такая привычка линуксоидов: "если мы должны с этим работать, то мы должны это полюбить" Единственное место, где без макросов было совсем тяжко - это декларация карт сообщений в MFC . Если ты ещё не веришь в ужос макросов, попробуй, например, с помощью макроса A2W преобразовать в юникод мегабайт 5 текста . Он упадёт именно потому, что он - макрос . См. так же тему DrUnkarda в Многошуме о том, как чуваки из MS зажигают . ..В общем, макросам - не место в жизни современного человека. |
Сообщ.
#39
,
|
|
|
Цитата BugHunter @ Хантер, не соглашусь. ..В общем, макросам - не место в жизни современного человека. Контр-пример: #ifdef _DEBUG #define DEBUG_PRINT(x) printf(x) #else #define DEBUG_PRINT(x) #endif Еще контр-пример: Писал я когда-то модуль сбора статистики по алгоритмам на fixed-point. Модуль представлял собой класс, в котором определялись базовые арифметические операции, там же подсчитывалось на какой строке возникали насыщения etc. Без макросов этот вопрос не решается никак. Если будешь запрашивать строку в коде из перегруженного оператора, то он тебе выдаст номер строки в реализации перегруженного оператора. Поэтому приходилось использовать макросы. Т.ч. не следует считать макросы атавизмом. Просто злоупотреблять не надо. Всему свое место. |
Сообщ.
#40
,
|
|
|
Цитата Хантер, не соглашусь. Контр-пример: ну, это не совсем макросы . точнее - безобидные я канешно, имел в виду функции-макросы, а не макроопределения ..и тоже ведь можно нарваться . Поэтому и выносить их желательно только в настройки проекта. Поэтому то что ты с условной компиляцией привёл - это не совсем макросы . Цитата Если будешь запрашивать строку в коде из перегруженного оператора, то он тебе выдаст номер строки в реализации перегруженного оператора. у, тут ещё вспомнил про макроопределения __FILE__ и __LINE__, тоже полезно бывает. ..опять таки, уже всё что нужно - уже имеется в готовом виде. Но заметь, что для C, что для C++ все приведённые примеры совершенно одинаково полезны А я же имел в виду возражение против фразы " в C они очень к месту ". |
Сообщ.
#41
,
|
|
|
Цитата BugHunter @ А что же это? Поэтому то что ты с условной компиляцией привёл - это не совсем макросы Цитата Rikkie @ Я же могу еще функциональности добавить, которая только в debug-режиме потребуется.#define DEBUG_PRINT(x) printf(x) Цитата BugHunter @ ты меня понял. у, тут ещё вспомнил про макроопределения __FILE__ и __LINE__, тоже полезно бывает. Цитата BugHunter @ Я видел более категоричное утверждение А я же имел в виду возражение против фразы " в C они очень к месту ". |
Сообщ.
#42
,
|
|
|
Цитата BugHunter @ Хм... Как это в многошуме? Она же в моем разделе была? См. так же тему DrUnkarda в Многошуме о том, как чуваки из MS зажигают |
Сообщ.
#43
,
|
|
|
И в моём тоже. В твоём она была более информативна
Добавлено Цитата А что же это? Да как тебе сказать.. если используется условная компиляция, то обычно не принято писать #define прямо в .cpp и .h файлах (ибо чревато), а выносить в настройки проекта (есть там такая чтука - preprocessor definitions), поэтому как то рука не поворачивается назвать это макросом - в настройках проекта они имеют спец свойство - видны во всех файлах проджекта, поэтому более безопасны, что ли |
Сообщ.
#44
,
|
|
|
Цитата BugHunter @ кхммм... я понимаю в этом месте _DEBUG, там ему и место, но размещать DEBUG_PRINT в preprocessor definitions .... мало ли что DEBUG_PRINT делает, может у него вывод какой-то хитро-сложный, может там еще какие-то данные ворочаются. Да может этот дебаг-принт в других ед.тр нафинг не нужен.... к тому же этот дебаг-принт - наиболее простой пример, можно еще сложнее найти. есть там такая чтука - preprocessor definitions |
Сообщ.
#45
,
|
|
|
Честно говоря, этот DEBUG_PRINT(x) можно легко заменить на inline функцию. Так что здесь он как бы э.. не к месту.
Всё равно этот x будет вычисляться даже в release версии (никуда не деться, вот так вот фигово). Так шо - инлайн функция с пустым лелом в release спасут отца. Да и как то некошерно, лучше что нибудть такое: #ifdef _DEBUG inline void DebugPrint( const wchar_t* format, ... ) { va_list args; va_start(args, format); //и т.д. - разобрать лист параметров va_end(args); } #else inline void DebugPrint( const wchar_t* format, ... ) {} #endif ....по крайней мере я не вижу, почему твой вариант с макросом в данном случае будет работать лучше (или быстрее, или удобнее) |