Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaно такое дармовое контрактное условие выполняется/проверяется не всегда, потому у разработчика должен быть выбор. Выбор == возможность облажаться А так еще забавный момент - в С++ переполнение для signed - это неопределенное поведение (в отличие от unsigned). Причем эти грабли совершенно реальны . Так что даже проверить наличие знакового переполнения кроссплатформенно затруднительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:04 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaговоря проще - никто не собирается включать проверку целочисленного переполнения глобально, это глупо, да и в случае фунций хеширования и чексумм - еще и недопустимо, там алгоритмы на переполнении как раз и построены. Если очень надо - можно вставками на асме писать вычисления и проверять флаг переполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:13 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли очень надо - можно вставками на асме писать вычисления и проверять флаг переполнения. далеко не везде их можно писать, не говоря уже об осмысленности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:15 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Barlonenojavaно такое дармовое контрактное условие выполняется/проверяется не всегда, потому у разработчика должен быть выбор. Выбор == возможность облажаться А так еще забавный момент - в С++ переполнение для signed - это неопределенное поведение (в отличие от unsigned). Причем эти грабли совершенно реальны . Так что даже проверить наличие знакового переполнения кроссплатформенно затруднительно. затруднительно, но не невозможно - см. выше про intsafe.h и gcc builtin-ы возможность облажаться есть всегда - даже в Java с их хваленым "GC решает все проблемы" память точно так-же течет, как и везде, ну а вместо dangling pointer они отхватили свои классы системных проблем тут скорее вопрос не в том, как бы вообще не облажаться, а как-бы сделать так, чтоб облажаться было сильно затруднительно, ну и проверок понаставить везде где только можно, начиная с уровня статического анализатора. так-то в лужу можно сесть всегда вон на простейшем: http://blog.regehr.org/archives/1307, где даже -Wstrict-aliasing не помогает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:16 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaзатруднительно, но не невозможно - см. выше про intsafe.h и gcc builtin-ы В ссылке про intsafe.h - только про unsigned, по крайней мере я не увидел там signed типов... Про gcc - да, там есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:34 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaэто уже получилось, в gcc, mvcc, clang, sunpro. никакого секрета нет - везде используется link time optimization, ключи естественно разные, но cmake им вполне можно обучить. форсирование инлайнинга везде делается по-разному, но чудные макросы INLINE решают и эту проблему. в debug режиме (O0) это все, естественно, не работает А вы уверены, что ваши __inline__ в исходнике как-то попадают объектный файл и влияют на решение линкера? Может, просто поставив ключи для link time optimization, вы получите то же самое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:47 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaа avg() это отдельная тема, и NULL во float/double вроде как принято представлять через NaN, нет? Нет. Арифметика с Infinity/Nan - это все части стандарта IEE 754 и других (тысячи их). Я знаю что JavaScript весьма лукавым образов вводит полиморфизм decimal-типов используя double но и имеет артефакты. Точно не уверен (не специалист в JS) но кажется только индексы массивов кастятся в целое а все остальные вычисления арифметики идут через double. Реляционная алгебра - это другое. Выше кто-то предложил юзать std::ratio<1, 100> в качестве замены NUMBER(m,n) на клиентской стороне. Я говорю - ОК я не против. Только давайте договримся как будем представлять NULL и как с ним работать. Тривиально если мы получили SELECT NULL FROM DUAL; у нас должна быть техническая возможность положить это значение в тип и работать с ним далее с сохранением семантики Oracle - вычислений. Тоесть нам нужна биекция между доменом значений NUMBER и нашим типом данных на стороне клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 14:52 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Barlonenojavaэто уже получилось, в gcc, mvcc, clang, sunpro. никакого секрета нет - везде используется link time optimization, ключи естественно разные, но cmake им вполне можно обучить. форсирование инлайнинга везде делается по-разному, но чудные макросы INLINE решают и эту проблему. в debug режиме (O0) это все, естественно, не работает А вы уверены, что ваши __inline__ в исходнике как-то попадают объектный файл и влияют на решение линкера? Может, просто поставив ключи для link time optimization, вы получите то же самое? вот в этом не уверен на все 100%, что просто включение ltp без всяких хинтов не сделает то-же самое. но зато уверен, что компилятор не возьмет и сам не примет решение не включать форсированный инлайн. как говорится - оптимист всегда верит, что будет лучше. пессимист верит что в лучшем случае не станет хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 15:17 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaа avg() это отдельная тема, и NULL во float/double вроде как принято представлять через NaN, нет? Нет. Арифметика с Infinity/Nan - это все части стандарта IEE 754 и других (тысячи их). Я знаю что JavaScript весьма лукавым образов вводит полиморфизм decimal-типов используя double но и имеет артефакты. Точно не уверен (не специалист в JS) но кажется только индексы массивов кастятся в целое а все остальные вычисления арифметики идут через double. да, в JavaScript вообще все числа по-умолчанию double, там чтоб как-то подсказать JITу, что это integer - нужно делать еще те приседания. maytonstd::ratio Тоесть нам нужна биекция между доменом значений NUMBER и нашим типом данных на стороне клиента. std::ratio это вообще не про это подсчет денег, это для теоретизированых математик, это вообще мимо кассы со страшным грохотом http://en.cppreference.com/w/cpp/numeric/ratio/ratio_add ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 15:31 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaсо временем будет опубликовано на github, пока не время :) Чувствую, когда придет время, Стебелек будет повержен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 16:40 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavamaytonstd::ratio Тоесть нам нужна биекция между доменом значений NUMBER и нашим типом данных на стороне клиента. std::ratio это вообще не про это подсчет денег, это для теоретизированых математик, это вообще мимо кассы со страшным грохотом http://en.cppreference.com/w/cpp/numeric/ratio/ratio_add Для nested set может пригодится. http://www.sql.ru/forum/1151532-1/tyapnichnyy-nested-set ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 16:59 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaсо временем будет опубликовано на github, пока не время :) Чувствую, когда придет время, Стебелек будет повержен стебелек никто не сможет повергнуть. а так - его давно уже купила hooli, если ты понял, о чем я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 17:59 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonnojavaпропущено... std::ratio это вообще не про это подсчет денег, это для теоретизированых математик, это вообще мимо кассы со страшным грохотом http://en.cppreference.com/w/cpp/numeric/ratio/ratio_add Для nested set может пригодится. http://www.sql.ru/forum/1151532-1/tyapnichnyy-nested-set листая подобное, понимаешь - насколько они далеки от народа (с) а всего-то навсего хотелось вариацию на тему Pro*C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 18:13 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojava если в Oracle есть свой BCD подобный тип NUMBER, то в C++ есть только IEEE float с потерей точности, за использование которого в финансовых задачах нужно просто брать руки и зажимать их нежно в дверь. как раз в финансовых задачах float очень даже можно использовать, в бухгалтерских нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 23:12 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivnojavaесли в Oracle есть свой BCD подобный тип NUMBER, то в C++ есть только IEEE float с потерей точности, за использование которого в финансовых задачах нужно просто брать руки и зажимать их нежно в дверь. как раз в финансовых задачах float очень даже можно использовать, в бухгалтерских нельзя. пример, название финансовой задачи, в которой допустимы искажения данных на округлении, приведешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 11:28 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Возможно MasterZiv имеет в виду аналитику и принятие решений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 11:49 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaсо временем будет опубликовано на github, пока не время :) А я-то губу раскатал :) Три года ждать? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 13:58 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
BagaBaganojavaсо временем будет опубликовано на github, пока не время :) А я-то губу раскатал :) Три года ждать? :)) к 2020 вроде обещвно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 14:04 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Проект Стебелек автор не развивает. Он щас переключился на JSON-подобную dbms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 14:16 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилBagaBagaпропущено... А я-то губу раскатал :) Три года ждать? :)) к 2020 вроде обещвно а я что, виноват? в этом вашем C/C++ все блин как-то сделано через одно место (в сравнении с той-же Delphi или Java). Хочется допустим в релиз тиснуть развертывание стрека (stacktrace функция, файл, номер строки) при exception, как это сделано в Java, и понеслась - stackwalker.cpp, backtrace() и прочие чудные костыли, 100500 опций компилятора, которые хрен пойми как тискать в эти ваши cmake конфиги, просто чтоб получить striped debug info (не показывать кастомеру излишнее). Причем каждая платформа имеет свои, особо зверские костыли в вопросе, тот-же Mac OS X 10.9 и выше вообще backtrace() разучился понимать, OpenBSD его никогда и не понимал, а в Solaris как всегда свои косяки с addr2line, и... а всем до лампочки. Скажано - stacktrace не нужен, сиди втыкай в coredump, ага (который у клиента не включен, ясен пончик). Вон заставить заработать инлайнинг - тоже нужно блин целое исследование три дня делать, изучать всякую ерунду вроде golden блин linker для clang с плагинами и прочие приседания сделать. ABI несовместимости для .so - следующий квест, и т.д. cmake библиотека уже перевалила вторую тысячу строк. на automake даже смотреть не хочется, не смешно ни разу (под виндой и солярой его никогда не будет). Понаделают же недо решений. Каждый казалось бы простой вопрос - как привинтить ту или иную фичу кроссплатформенно - и нужно брать мачете и проламывать такие дебри, что иногда хочется взять и плюнуть, и перейти на Visual Basic. Уже давно бы перешел, только он не кроссплатформенный :( Как вы вообще умудряетесь работать с такой чудной средой - прямо загадка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 15:14 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojava, не переживай браток. Просто С++ это не твоё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 18:03 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaКаждый казалось бы простой вопрос - как привинтить ту или иную фичу кроссплатформенно Нужда в кроссплатформенности сильно преувеличена. Больше всего стоит разработка и поддержка софта. А платформу можно подогнать под софт какую надо. Стоит это копейки по сравнению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 18:34 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskynojavaКаждый казалось бы простой вопрос - как привинтить ту или иную фичу кроссплатформенно Нужда в кроссплатформенности сильно преувеличена. Больше всего стоит разработка и поддержка софта. А платформу можно подогнать под софт какую надо. Стоит это копейки по сравнению. сильно, не сильно - это до лампочки. есть понятие sanity check - если ты что-то можешь сделать только в MSVC или в GCC, то сто пудов ты это делаешь не так. типичный пример - макросы TODO, которые через pragma message бросают сообщение при билде, которые потом засасывает jenkins и т.п. попробуй сделать это так, чтоб понимало Код: plaintext 1. 2. 3. 4. ну и чтоб работало во всех известных компиляторах. самоудовлетворение от секаса гарантировано. зато есть и полезное на выходе - к примеру все доступные имплементации STRINGIFY(x) макроса выбрасываются в помойку, ибо там нужно STRINGIFY(...), гугл и стэковерфлов чуваки также смело идут в стан ламеров просто потому что они ни разу не пытались свои "солющины" сделать именно кроссплатформенными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 19:29 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonnojava, не переживай браток. Просто С++ это не твоё. конечно С++ это не мое, программировать на возведенной в абсолют копипасте (это я про темплейты), это пожалуйста пройдите к другому эскулапу. С != С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 19:33 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaMasterZivпропущено... как раз в финансовых задачах float очень даже можно использовать, в бухгалтерских нельзя. пример, название финансовой задачи, в которой допустимы искажения данных на округлении, приведешь? Например, планирование бюджета предприятия на год... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39281258&tid=2018218]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 142ms |

| 0 / 0 |
