Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonВозможно MasterZiv имеет в виду аналитику и принятие решений? Нет, просто бюджетирование. Там не надо до копеек чтобы всё сходилось. Вообще. И даже вредно этого добиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:19 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Хочется допустим в релиз тиснуть развертывание стрека (stacktrace функция, файл, номер строки) при exception, как это сделано в Java, и понеслась - stackwalker.cpp, backtrace() и прочие чудные костыли, 100500 опций компилятора, которые хрен пойми как тискать в эти ваши cmake конфиги, просто чтоб получить striped debug info (не показывать кастомеру излишнее). Это platform specific. Вон заставить заработать инлайнинг - тоже нужно блин целое исследование три дня делать, изучать всякую ерунду вроде golden блин linker для clang с плагинами и прочие приседания сделать. ABI несовместимости для .so - следующий квест, и т.д. inline где надо современные компиляторы очень хорошо делают. Видимо, ты хочешь его добиться там, где не надо... cmake библиотека уже перевалила вторую тысячу строк. на automake даже смотреть не хочется, не смешно ни разу (под виндой и солярой его никогда не будет). Про солярий не скажу, точно не знаю, но под виндой automake есть даже в двух экземплярах. Другое дело, что это -- вообще в корне неверный подход, тупиковая ветвь развития. Правильная -- CMake. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskynojavaКаждый казалось бы простой вопрос - как привинтить ту или иную фичу кроссплатформенно Нужда в кроссплатформенности сильно преувеличена. Больше всего стоит разработка и поддержка софта. А платформу можно подогнать под софт какую надо. Стоит это копейки по сравнению. Очень правильные слова. На самом деле каждой платформе -- своё назначение. Win -- для UI, (мас туда же), решается QT, и даже линукс захватывает, а вычисления и обработка данных -- Linux, они же WEB-сервера и другие enterprise-приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:27 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivnojavaпропущено... пример, название финансовой задачи, в которой допустимы искажения данных на округлении, приведешь? Например, планирование бюджета предприятия на год... эта задача в 99.99% случаев делается в инструменте под названием Excel. но ты продолжай, продолжай, откровения-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:55 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivПро солярий не скажу, точно не знаю, но под виндой automake есть даже в двух экземплярах. Другое дело, что это -- вообще в корне неверный подход, тупиковая ветвь развития. Правильная -- CMake. о чем твой спич? под виндой и cygwin есть, и что с того? никто не собирает проекты для студии через automake, я и говорил про это выше. cmake тоже не панацея, в изначальном виде это так, для детского сада по уровню настроек. он не умеет даже striped pdb в relwithdebuginfo делать, о чем там вообще можно говорить. хотя cmake хоть допилить можно, да. угу. каждый девелопер сидит и пилит небось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 21:59 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaMasterZivпропущено... Например, планирование бюджета предприятия на год... эта задача в 99.99% случаев делается в инструменте под названием Excel. но ты продолжай, продолжай, откровения-то. А что, если ты попадаешь на тот самый 0.01% ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 22:58 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavamaytonпропущено... Нет. Арифметика с 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 Время через std::ratio<> в стандартной библиотеке считают , так чего бы и деньги не считать? Чето типа таких плясок: http://ideone.com/fCbQEi Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 00:58 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинВремя через std::ratio<> в стандартной библиотеке считают , так чего бы и деньги не считать? Это шаблоны. Настоящим профи такое нельзя ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 02:12 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonВася Уткинпропущено... std::ratio<1, 100> - чем он хуже, чем в Oracle есть свой BCD подобный тип NUMBER? Они ничем не хуже и не лучше. Когда вы работаете в Oracle PLSQL с типом NUMBER то вы воспроизводите NULL-семантику реляционной алгебры. Тоесть при расчете avg(..) от трех строк в таблице {0,null,6} вы не должны заменять null на 0 а учитывать его как несуществующее значение в коллекции. Тоесть среднее должно быть равно 3 а не 2. Также у вас не должно быть попытки расширять тип NUMBER больше 40 десятичных разрядов на клиенте. Тоесть не должно быть в принципе такой возможности. При сериализации-десериализации не должно быть потерь или внезапных приобретений в значениях числа. Также надо посмотреть в сторону погрешностей расчетов. Нужно 100% эмулировать BCD-арифметику иначе расчеты клиента и сервера где-то не сойдутся. Кому-то последний пункт может показаться не очень важным но это еще один способ стрельнуть себе в ногу в неожиданном месте. Да и кстати, такие пляски для null можно: http://ideone.com/Dr2INK Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. авторsum = 6.0 count = 2 avg = 3.0 sum_select_statment = 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 02:53 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася УткинВремя через std::ratio<> в стандартной библиотеке считают , так чего бы и деньги не считать? Это шаблоны. Настоящим профи такое нельзя ))) Да там вообще человек запутался, темплейты называет копипастой, когда темплейты - это избавление от копипасты. Шаблоны слишком коротко - за количество строк мало заплатят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 03:03 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Обычно платят за бизнес-фичи. Но у вас как-то странно.... количество строк.... Писать надо ровно столько строк чтобы самому было понятно и иметь возможность прошагать отладчиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 09:36 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonОбычно платят за бизнес-фичи.по разному бывает, иначе откуда бы взялся индусский код? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 10:25 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivnojavaпропущено... эта задача в 99.99% случаев делается в инструменте под названием Excel. но ты продолжай, продолжай, откровения-то. А что, если ты попадаешь на тот самый 0.01% ? 0.01% людей ложку в ухо обычно несут, вместо рта, тоже мне достижение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 11:28 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинAnatoly Moskovskyпропущено... Это шаблоны. Настоящим профи такое нельзя ))) Да там вообще человек запутался, темплейты называет копипастой, когда темплейты - это избавление от копипасты. Шаблоны слишком коротко - за количество строк мало заплатят темплейты - это возведенная в абсолют автоматизированная копипаста, так убедительнее звучит? не важно кто копипасту ипсолняет - кодер Вася или компилятор, копипастой от этого она не перестает быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 11:30 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинДа и кстати, такие пляски для null можно: http://ideone.com/Dr2INK можно что угодно, но код выше не отличается лаконичностью, пробуйте еще. заодно попробуйте проверить пограничные значения, ну и уместить это все в 8 байт на значение:) вообще конечно идея, что для простейших арифместических операций нужен какой-то C++ брейнфак с темплейтами, вместо простешего кода ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. ужасно доставляет. мир кажется сошел с ума и совсем разучился программировать просто и эффективно. больше букв в коде, больше! и < > закорючек, которые означают что-то иное, чем больше и меньше, это чтоб читать было проще, ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 11:38 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Я если честно не понял зачем Вася написал этот пример временем. Проверить какое-то утверждение? Возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 12:52 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaВася УткинДа и кстати, такие пляски для null можно: http://ideone.com/Dr2INK можно что угодно, но код выше не отличается лаконичностью, пробуйте еще. заодно попробуйте проверить пограничные значения, ну и уместить это все в 8 байт на значение:) вообще конечно идея, что для простейших арифместических операций нужен какой-то C++ брейнфак с темплейтами, вместо простешего кода ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. ужасно доставляет. мир кажется сошел с ума и совсем разучился программировать просто и эффективно. больше букв в коде, больше! и < > закорючек, которые означают что-то иное, чем больше и меньше, это чтоб читать было проще, ага Т.е. вопрос не в том, что это нельзя сделать в С++, а в том, что типы с таким поведением не введены в стандартную библиотеку С++ и у вас не получается их быстро сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 12:56 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинТ.е. вопрос не в том, что это нельзя сделать в С++, а в том, что типы с таким поведением не введены в стандартную библиотеку С++ и у вас не получается их быстро сделать? знаешь, в булочную можно и через северный полюс ездить. ну и что что долго, но технически это же возможно, верно? в типовом современном зашаблонированном C++ (не берем упрощенку вроде C with objects) между "это в принципе возможно" и "это возможно настолько хорошо и удобно, что это даже можно использовать практически" - зачастую просто пропасть, и твой пример - подтверждение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 13:02 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaвообще конечно идея, что для простейших арифместических операций нужен какой-то C++ брейнфак с темплейтами, вместо простешего кода ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. ужасно доставляет. мир кажется сошел с ума и совсем разучился программировать просто и эффективно. больше букв в коде, больше! и < > закорючек, которые означают что-то иное, чем больше и меньше, это чтоб читать было проще, агаВас расстраивает, что в стандарте С++ нет ваших qty_t, price_t, money_t? Так ведь у всех требования разные. Кто-то уверен, что его программе никогда не придется оперировать с суммами больше квинтиллиона долларов, и его устраивает тот самый где-то упомянутый тип Currency с внутренним представлением в int64, фиксированной точкой и игнорированием переполнения. Кому-то мало 4 знаков после точки. Кто-то не уверен, что квинтиллиона ему хватит, и хочет кидать исключения при переполнении. А кто-то уверен, что квинтиллиона не хватит, и использует BigNumber :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 13:12 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Я в посте увидел другое. Постулируется подход что когда у тебя нет финансового типа - ты берешь эдакий себе конструктор LEGO и собираешь из шаблончиков нужный тип. Ответственность за правильность решения при этом не обсуждается и предполагается что кодер сам знает что он делает. Вопросы оптимизации этого типа (как он внутри будет считать) мы как-то сразу скипаем. Мы также игнорируем возможные ошибки которые существуют на стыке технологий. Тоесть ошибка в рантайме происходит не в вашем коде а где-то в недрах шаблонизировнного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 13:31 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Barlonenojavaвообще конечно идея, что для простейших арифместических операций нужен какой-то C++ брейнфак с темплейтами, вместо простешего кода ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. ужасно доставляет. мир кажется сошел с ума и совсем разучился программировать просто и эффективно. больше букв в коде, больше! и < > закорючек, которые означают что-то иное, чем больше и меньше, это чтоб читать было проще, агаВас расстраивает, что в стандарте С++ нет ваших qty_t, price_t, money_t? Так ведь у всех требования разные. Кто-то уверен, что его программе никогда не придется оперировать с суммами больше квинтиллиона долларов, и его устраивает тот самый где-то упомянутый тип Currency с внутренним представлением в int64, фиксированной точкой и игнорированием переполнения. Кому-то мало 4 знаков после точки. Кто-то не уверен, что квинтиллиона ему хватит, и хочет кидать исключения при переполнении. А кто-то уверен, что квинтиллиона не хватит, и использует BigNumber :) не думаю, что имеет смысл рассматривать бесконечные границы безумия. а так - для определенного класса задач (скажем так, 99.9% случаев) существуют вполне себе разумные и общепринятые правила. к примеру уже не осталось стран, которые используют что-то, кроме 1/100 для денег, а суммарный ВВП за всю историю человечества тоже вполне расчитываемая и конечная величина, квинтиллионы там не нужны. т.е. для подчета денег вполне достаточно fixed number, производного от int, с точностью два знака. к примеру мировой ВВП в прошлом году это всего 73 триллиона. 92233 позволит этот ВВП суммировать 1263 раз. этого более чем достаточно для всех практических бухгалтерских и финансовых задач - ну не может быть в задаче больше денег, чем человечество способно в принципе произвести. так это еще с точностью до копейки, а если без копейки - это 126300 раз - больше, чем в обозримой перспективе человечество вообще сможет денег запродуцировать. Код: plaintext 1. 2. в этом и отличается прагматический инженерный подход и "стандартная обобщенная хрень". на самом деле никому ничего не нужно обобщать - все случаи задач они довольно конкретны, и уж поверьте, специфика машинных вычислений для инженеров и ученых от физики она своя, а для экономистов - своя, и надо их обобщать. а ученые от теорматематки вообще идут отдельным лесом, давайте их чудные комплексные числа бухгалтерам тиснем, для начала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 13:31 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Двух знаков недостаточно :) Вон на всех биржах цены с 4 знаками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 14:06 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojava Код: plaintext 1. 2. Замечательное кстати число https://lenta.ru/news/2013/07/17/paypal/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 14:08 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Я не думаю что ВВП возможно посчитать до копейки. Тут скорее важно оценить. И принять решение. А вот в налоговых вопросах - там да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 14:12 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Barlonenojava Код: plaintext 1. 2. Замечательное кстати число https://lenta.ru/news/2013/07/17/paypal/ это они просто -1 в unsigned видать закастили и не сделали проверки на переполнение. после этого случая, уверен, доработали проверки. а так да - пример того, что PayPal испольузует fixed number от int64 - лишний раз доказывает, как нужно правильно нужно считать деньги. и как не надо делать - не делать проверки переполнения и кастования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39282246&tid=2018218]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 546ms |

| 0 / 0 |
