Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужен эмулятор диспечера задач. http://www.cyberforum.ru/cpp/thread419470.html
Ребят,помогите,пожалуйста,может у кого завалялся эмулятор диспечера задач на С/С++,очень надо. Нужно,что бы он создавал процесс,вводил его в состояние ожидания/выполнения и закрывал. Не откажусь от...
C++ Excel Automation in C++ Коллеги, прошу помощи! Нужен пример рабочего С++ кода, который делает следущее: - конектится к работающему в настоящий момент Excel; если Excel не запущен, то кидает exception; - конектится к... http://www.cyberforum.ru/cpp/thread419418.html
C++ Совместимость кода Code Composer Studio (CCS) с C/C++
С преподавателем друг друга не поняли. Как результат, прихожу с честно сделанными в Паскале лабами под занавес года, а он мне встречный подарок: "раз ты так редко ходишь, то почему не сделал лабы в...
C++ Как получить TID текущего потока? (библиотека pthread, компилятор g++ 4.6.1 открытый вопрос niXmanу)
Да, как? #include <windows.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> void *BusyWork(void *t) { printf("TID= %x\n", pthread_self()); printf("TID= %x\n", (unsigned...
C++ Непонятная разница в производительности http://www.cyberforum.ru/cpp/thread416848.html
Уважаемые эксперты! Есть у меня программа на С++, код которой я транслировал в двух системах: • Microsoft Visual Studio 2010 со штатным компилятором среды; • Code::Blocks версии 10.05 с пакетом...
C++ Высота бинарного дерева поиска Что неправильно в программе? Полное условие #include <iostream> #include <cstdio> #pragma comment (linker, "/stack:250000000") using namespace std; подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18247 / 6372 / 438
Регистрация: 30.03.2009
Сообщений: 17,629
Записей в блоге: 28
28.12.2011, 16:13  [ТС]
ForEveR, из всего того, что ты привёл, я не увидел того, что является compile-time алгоритмом в том смысле, в котором его понимает ТС (если я правильно его понял). "Технология, построенная на шаблонах" и "compile-time алгоритмы, построенные на шаблонах" - это как бэ две разные вещи

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

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

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

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

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