Форум программистов, компьютерный форум 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
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,388
Записей в блоге: 26
28.12.2011, 16:13  [ТС]     Что такое compile-time алгоритмы и для чего они нужны?
ForEveR, из всего того, что ты привёл, я не увидел того, что является compile-time алгоритмом в том смысле, в котором его понимает ТС (если я правильно его понял). "Технология, построенная на шаблонах" и "compile-time алгоритмы, построенные на шаблонах" - это как бэ две разные вещи

Цитата Сообщение от niXman Посмотреть сообщение
1. снижение производительности
На сколько сотых долей процента это дело ускорило работу программы?

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

Все эти алогритмы работают исключительно в случаях, когда одну константу надо перевести в другую, что на практике используется редко, потому как на практике обычно работают с заранее неизвестными величинами. А редкие случаи с константами, на мой взгляд, не дадут существенного прироста. А потому мне кажется, что вместо того, чтобы извращаться с шабонами, можно делать по простому, чтобы это вычислялось в run-time, но зато было понятно и просто.

Единственный полезный случай, который с ходу лезет в голову - это вычисление инициализатора для const переменных. Очень часто хочется сделать так, чтобы записать что-то в переменную один раз и чтобы больше переменную не менять. Для автоматических переменных это всё нормально рулится квалификатором const, а вот для статических не всегда получается. При этом бывают случаи, что значение переменной в приницпе можно было бы вот через такие пляски с бубнами вычислить. Но а других полезных практических применений я с ходу не вижу.

Добавлено через 50 секунд
Цитата Сообщение от niXman Посмотреть сообщение
еще, меня постоянно веселят записи в чьем-то коде типа "var = sqrt(1.7)"
спрашивается, для чего постоянно считать значение, если оно неизменно?
И как же это сделать через compile-time алгоритмы?
 
Текущее время: 20:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru