Форум программистов, компьютерный форум CyberForum.ru

Что такое compile-time алгоритмы и для чего они нужны? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятная разница в производительности http://www.cyberforum.ru/cpp/thread416848.html
Уважаемые эксперты! Есть у меня программа на С++, код которой я транслировал в двух системах: • Microsoft Visual Studio 2010 со штатным компилятором среды; • Code::Blocks версии 10.05 с пакетом MinGW и компилятором g++ версии 4.6.1. Проверка проводилась на следующей платформе: • Процессор Intel® Core™ i3 CPU 530 @2.93, индекс производительности 6.9; • Оперативная память 4 Гб, индекс...
C++ Странная ошибка при сборке nasm всем привет. нужно собрать nasm для вендус. использую MSYS+MinGW. configure прошел успешно. при сборке получаю такое: nasm.h:476:5: error: expected identifier before numeric constant nasm.h:882:26: error: 'PREFIX_ENUM_LIMIT' undeclared here (not in a function) http://www.cyberforum.ru/cpp/thread356140.html
Модификация AST дерева GCC C++
всем привет. есть задумка реализовать для GCC плагин расширяющий/добавляющий некоторые возможности С++ языку. проблемы со сбором информации из AST нет. могу получить любую необходимую мне информацию о единице трансляции. но проблема в модификации AST. вопрос в том, может ли кто-то подсказать ссылки/доки/исходники по теме? спасибо.
C++ Работа с const
Объясните пожалуйста разницу между вызовами двух функций: int func(const char *name) и int func(char *name) Я плохо понимаю - что дает этот спецификатор const? Что может произойти если его не указать?
C++ Новый стандарт принят! http://www.cyberforum.ru/cpp/thread341611.html
Barry Hedquist wrote: Just received word from ANSI that the C++ FDIS has officially been approved by ISO in a unanimous vote. 21 of 21 National Bodies voted to APPROVE. Под FDIS подразумевается N3290 (отличия которого от N3291 незначительны — см. comp.std.c++ — difference between documents n3290 and n3291->...
C++ mpl проход по элементам Пытался написать вывод элементов vector_c не через for_each. Не вышло. Кто подскажет как сие сделать наиболее удобно? Пример вектора. typedef boost::mpl::vector_c<char, 'h', 'e', 'l', 'l', 'o'>::type vector; Спасибо. подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17387 / 5625 / 351
Регистрация: 30.03.2009
Сообщений: 15,409
Записей в блоге: 26
29.12.2011, 13:37  [ТС]     Что такое compile-time алгоритмы и для чего они нужны?
Цитата Сообщение от niXman Посмотреть сообщение
я говорил о том, что 13 процентов затрат на поиск сериализатора/десериализатора. вывод профайлера я рассматривал как 100 процентов времени работы. далее, для уменьшения значений, я поделил 100 процентов времени работы на единицы, по одной секунде на единицу. и какая разница, 13 процент затрат на 100 процентов работы, или на 1 процент, или на одну секунду? если кол-во обращений к std::map фиксировано
Не понял вообще ничего. Ещё раз чётко и конкретно можешь сказать, сколько В СЕКУНДАХ ты получил выигрыш в скорости работы и сколько секунд работало приложение целиком

Цитата Сообщение от niXman Посмотреть сообщение
rpc процедуры + их типы + имена = константы
Естественно. Как и строковые литералы

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

Цитата Сообщение от niXman Посмотреть сообщение
тебе уже приводили коды. но все тебе не так, и все не эдак
Из конкретных кодов, по которым хоть что-то можно понять человеку, не владеющему глубиной познаний в конкретной области, пока привели только два: вычисление хэш-суммы и вычисление квадратного корня. Пока в обоих случаях я оцениваю выигрыш как доли секунды. И лично моё мнение пока сводится к тому, что особенной практической пользы в этих compile-time алгоритмах я пока не вижу.

То, что авторы boost'а реализовали какие-то интерфейсы таким образом, что в compile-time что-то там вычисляется - это безусловно хорошо. Только принципальное отличие этого момента - это код, написанный другими людьми (точно так же как и функция sqrt написана другими людьми). И пусть выигрыш на исполнении будет мизерным, но это с лихвой компенсируется тем, что пользователи boost'а не делают никаких дополнительных затрат ради этого мизерного выигрыша. Правда эти вещи я бы не стал называть словом "алгоритм", а назвал бы словом "технология". А вот вычисление хэш-суммы и квадратного корня - да, это уже алгоритмы, работая с которыми вычисления можно переложить на компилятор. Хотя я бы постарался их избегать по той причине, которую указывал уже не раз: в случае чего, невозможно оттрасировать работу этого шаблона, чтобы выяснить, в каком же месте он косячит, а потому нужно отладивать это кучей извращенческих способов. Вариант с constexpr ко всему прочему поддерживается не на всех версиях компиляторов. Стоят ли те выигранные доли секунды потери возможности компилировать на не самых современных компиляторов - это каждый решает для себя сам. Пока я для себя не увидел ни одного compile-time алгоритма, который по каким-то причинам захотелось бы включить в свой проект

Добавлено через 1 минуту
Цитата Сообщение от niXman Посмотреть сообщение
Evg, придумай задачу, которая, как тебе кажется, покажет профит. тогда подумаем над реализацией. и напоследок - над тестами
Дык я уверен в том, что эти алгоритмы не дают ощутимого профита в большой РЕАЛЬНОЙ задаче. Как же я могу задачу придумать
 
Текущее время: 09:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru