Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
22 / 19 / 9
Регистрация: 22.09.2015
Сообщений: 161
1

Пример применения constexpr

19.08.2016, 20:34. Показов 3071. Ответов 4

Author24 — интернет-сервис помощи студентам
Здравствуйте, можете привести и объяснить, какой нибудь простенький пример, уместного использования спецификатора constexpr. А то придумать не получается, а для хорошего запоминания, неплохо бы взглянуть на примерчик.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2016, 20:34
Ответы с готовыми решениями:

Указатели и ссылки - разобрать пример применения
У меня всё очень плохо с указателями и ссылками, не понимаю как они работают и тд. Нужно объяснение...

Пример применения оператора typeid к шаблонным классам
В книге Шилдт Г. С++ Базовый курс, 3-е издание,2010 приведен пример применения оператора typeid к...

Можно пример практического применения в приложениях директив препроцессора #if,#end,#error
Просто говорится,что это для выборочной компиляции. Я не могу предсттавить,где это может...

Присваивание constexpr к non-constexpr
constexpr float pi = 3.14159265; void some_fun() { float angle = 45.0f*(pi/180.0f); ...

4
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
19.08.2016, 20:46 2
NRX, C хабры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int sum (int a, int b)
{
    return a + b;
}
 
constexpr int new_sum (int a, int b)
{
    return a + b;
}
 
void func()
{
    constexpr int a1 = new_sum (5, 12); // OK: constexpr-переменная
    constexpr int a2 = sum (5, 12); // ошибка: преобразование int -> constexpr int
    int a3 = new_sum (5, 12); // ОК: неявное преобразование constexpr int -> int
    int a4 = sum (5, 12); // ОК
}
1
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
19.08.2016, 21:07 3
NRX, constexpr это просто константа, которую можно получить во время компиляции, от смысла этих слов и отталкивайтесь
C++
1
2
3
4
5
6
7
8
9
constexpr int new_sum (int a, int b)
{
    return a + b;
}
 
void func()
{
    constexpr int a1 = new_sum (5, 12); // компилятор преобразует в constexpr int a1 = 17;
}
1
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
19.08.2016, 21:15 4
constexpr функции могут работать как в компайл-тайме так и в рантайме:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
constexpr unsigned long long fuct(unsigned long long n)
{
    return n == 0 ? 1 : n == 1 ? n : n * fuct(n - 1);
}
 
int main()
{
    std::array<int, fuct(5)> ar;
    std::cout << "Enter value: ";
    int n = 0;
    std::cin >> n;
    std::cout << fuct(n);
}
Добавлено через 4 минуты
А еще есть constexpr классы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A {
   int val = 4;
   double d = 0.0;
   //std::string s; // not literal type
public:
   A() = default; // must be default
   constexpr A(int v) : val(v) {} //must be constexpr
 
   constexpr int get() const { return val; }
};
 
int main()
{
   constexpr A ca(10);
   std::array<int, ca.get()> ar; // .get() must be constexpr
}
Добавлено через 3 минуты
Все траитсы из type_traits активно используют constexpr
1
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
19.08.2016, 21:16 5
Пример применения constexpr
1
19.08.2016, 21:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2016, 21:16
Помогаю со студенческими работами здесь

Пример применения на Лиспе
Пример применения на Лиспе (f 'a '(2 ((b)) ((©)) '((b a d)) 6 7)) T (f 'a '(2 ((b)) ((©))...

Пример применения MSXML
Много раз уже слышал об этой библиотеке, но может ктнибудь покажет примерчик для самых маленьких? ...

Пример применения EF Code First с MySQL
Добрый день! Использую MS VS 2017. Хочу написать код, выбирающий данные из DB MySQL, Code First...

Нужен пример применения и использования процедуры chDir
Помогите пожалуйста нужен пример применения и использования procedure chDir(path:string), которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru