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

Compile-time и run-time методы и функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Expansion pattern contains no argument packs http://www.cyberforum.ru/cpp-beginners/thread1798090.html
Есть 3 функции: void add(short n) { //... return; } void add(short a, short n) { //... add(n...); return; }
C++ Сравнение строковых литералов Добрый день, есть кроссплатформенные гарантии на то, что адреса одного и тоже же строкового литерала внутри одного .exe/.lib будут равны? Про .lib имеется статическая линковка несколько проектов в... http://www.cyberforum.ru/cpp-beginners/thread1798081.html
Изменить значение выражения введенное с клавиатуры C++
Здравствуйте, у меня имеется код char *p; p = (char *)malloc(100); char *s; s = p; gets_s(s, 100);мне необходимо поменять значение переменной s после ввода с клавиатуры, там где символ...
C++ Унаследовать функцию с переменным числом параметров
Добрый день, форум! Вот такая задачка: Есть базовый класс A с методом void func(void). От этого класса унаследовался другой класс, B, в котором есть тоже функция func, но с другим набором входных...
C++ Функции, зависимые от реализации компилятора http://www.cyberforum.ru/cpp-beginners/thread1797956.html
какой вызов является зависимым от реализации компилятора? realloc(..., 0) memcpy() между объектами, перекрывающими друг друга free(strdup()) calloc() нулевого размера realloc(NULL, ...)
C++ Ошибка в приложении sdl Начинаю разбираться в sdl. Написал фреймворк с графикой. Вижуал студия ошибок не показывает, но при компиляции выдает много ошибок, связанных с классом Graph. Ошибки очень странные, в гугле ничего... подробнее

Показать сообщение отдельно
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 610
Завершенные тесты: 1

Compile-time и run-time методы и функции - C++

24.08.2016, 13:51. Просмотров 263. Ответов 5
Метки (Все метки)

Добрый день.
Есть две функции, которые делают идентичную работу:
C++
1
2
3
4
5
6
7
8
9
10
11
template<bool leftShift, typename T>
T byteShift(T data)
{
    return leftShift ? data << 8 : data >> 8;
}
 
template<bool leftShift, typename T, T data>
T byteShift()
{
    return leftShift ? data << 8 : data >> 8;
}
Вопрос: нужно ли держать в коде обе версии функции, или достаточно ограничиться только run-time версией?
Будет ли такой вызов оптимизирован (посчитан) на этапе компиляции?
C++
1
byteShift<true>(0x00FFAE65);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.