|
|
|
Что такое compile-time алгоритмы и для чего они нужны?28.12.2011, 14:54. Показов 25783. Ответов 45
Метки нет (Все метки)
1
|
|
| 28.12.2011, 14:54 | |
|
Ответы с готовыми решениями:
45
Что такое шейдеры и для чего они нужны? Что такое беки и для чего они нужны? Что такое саттелиты и для чего они нужны? |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 28.12.2011, 15:02 | |
|
Evg, Во всем есть польза, смотря как это использовать.
Ради примера : http://www.boost.org/doc/libs/... ratio.html
0
|
|
|
|
|||
| 28.12.2011, 15:18 | |||
|
1. алгоритмы оперирующие типами. 2. вынесение ран-тайм задач оперирующих константными данными в компайл-тайм. Добавлено через 1 минуту
0
|
|||
|
|
|||
| 28.12.2011, 15:24 [ТС] | |||
|
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 28.12.2011, 15:48 | |||||||||||
|
Evg,
http://habrahabr.ru/blogs/cpp/86651/ Где-то видео некий большой проект с огромным кол-вом использования буста, в частности mpl/fusion. Ссылку не найду. Но в продакшне mpl довольно редко используется, что есть то есть. Добавлено через 8 минут Пример использования как раз mpl-а есть в либе Arabica - С++ обертка над разными xml-парсерами, схема DOM, поддержка XSLT, Xpath.
0
|
|||||||||||
|
|
||
| 28.12.2011, 16:02 | ||
|
можно было это все перенести в ран-тайм, но тогда бы пришлось столкнуться с двумя проблемами: 1. снижение производительности. 2. отлов ошибок в ран-тайм. что не очень приятно. Добавлено через 4 минуты так же, некий мой товарищ, при работе с CUDA использует mpl для генерации таблиц и матриц из некоторых изначальных значений. Добавлено через 4 минуты еще, меня постоянно веселят записи в чьем-то коде типа "var = sqrt(1.7)" ![]() спрашивается, для чего постоянно считать значение, если оно неизменно?
2
|
||
|
|
||||
| 28.12.2011, 16:13 [ТС] | ||||
|
ForEveR, из всего того, что ты привёл, я не увидел того, что является compile-time алгоритмом в том смысле, в котором его понимает ТС (если я правильно его понял). "Технология, построенная на шаблонах" и "compile-time алгоритмы, построенные на шаблонах" - это как бэ две разные вещи
Все эти алогритмы работают исключительно в случаях, когда одну константу надо перевести в другую, что на практике используется редко, потому как на практике обычно работают с заранее неизвестными величинами. А редкие случаи с константами, на мой взгляд, не дадут существенного прироста. А потому мне кажется, что вместо того, чтобы извращаться с шабонами, можно делать по простому, чтобы это вычислялось в run-time, но зато было понятно и просто. Единственный полезный случай, который с ходу лезет в голову - это вычисление инициализатора для const переменных. Очень часто хочется сделать так, чтобы записать что-то в переменную один раз и чтобы больше переменную не менять. Для автоматических переменных это всё нормально рулится квалификатором const, а вот для статических не всегда получается. При этом бывают случаи, что значение переменной в приницпе можно было бы вот через такие пляски с бубнами вычислить. Но а других полезных практических применений я с ходу не вижу. Добавлено через 50 секунд
0
|
||||
|
|
||||
| 28.12.2011, 16:18 | ||||
|
почитай Александреску.
Добавлено через 1 минуту вот только записываться это будет как "var = sqrt<1,7>::value" Добавлено через 51 секунду Добавлено через 39 секунд
0
|
||||
|
|
||||
| 28.12.2011, 16:20 [ТС] | ||||
|
Добавлено через 48 секунд
0
|
||||
|
|
||||
| 28.12.2011, 16:30 | ||||
|
дело в том, что каждый узел сети имеет производительность на пустых операциях - ~740 000. теперь это значение умнож на два(запрос/ответ). изначально в реализации я использовать std::map<>. затраты на получения конкретного сериализатора/десериализатора составляли 13 процентов. при замене его на std::unordered_map<> затраты составили 6 процентов. с компайл-тайм картой - 0 процентов. Добавлено через 1 минуту Добавлено через 2 минуты
0
|
||||
|
|
|||||||||||||
| 28.12.2011, 16:37 [ТС] | |||||||||||||
Кстати, ты так и не написал кода с compile-time вычислением корня ![]()
0
|
|||||||||||||
|
|
|||
| 28.12.2011, 16:39 [ТС] | |||
|
Добавлено через 32 секунды Добавлено через 55 секунд Если я правильно понимаю твой термин "compile-time алгоритм"
0
|
|||
|
|
|||
| 28.12.2011, 16:39 | |||
|
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 28.12.2011, 16:40 | |
|
Evg, http://habrahabr.ru/blogs/cpp/124963/ на тему корня.
2
|
|
|
|
||
| 28.12.2011, 16:42 | ||
|
а std::find() тоже не алгоритм? Добавлено через 49 секунд ForEveR, спасибо за ссылку.
0
|
||
|
|
||
| 28.12.2011, 16:44 [ТС] | ||
|
0
|
||
|
|
||||
| 28.12.2011, 16:57 [ТС] | ||||
|
Добавлено через 5 минут Ну а то, что практической пользы нет - я это я погорячился. Польза, конечно, есть, но, на мой взгляд, очень не большая и в очень редких случаях оно действительно обосновано
0
|
||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 28.12.2011, 17:01 | ||||||
|
Evg,
1
|
||||||
| 28.12.2011, 17:01 | |
|
Помогаю со студенческими работами здесь
20
Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора? Что за драйвера такие, для чего они и нужны ли они вообще? Что такое векторы, и для чего нужны? Что такое Ant и Struts, и для чего нужны? Compile - time алгоритмы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|