Как во время компиляции узнать количество цифр в целой части числа?
constexpr int a = 5; // ответ 1
constexpr short b = 100; // ответ 3
constexpr double c = 10.5 // ответ 2
Тем же способом, что и обычно.
Домашнее задание: Придумать, что делать, если дробное число не влезаeт в long long.
#include <iostream>
constexpr int count_digits(long long x)
{
int ret = 0;
do
ret++;
while (x /= 10);
return ret;
}
int main()
{
constexpr int a = 5;
constexpr short b = 100;
constexpr double c = 10.5;
constexpr int d = count_digits(a);
constexpr int e = count_digits(b);
constexpr int f = count_digits(c);
std::cout << d << '\n';
std::cout << e << '\n';
std::cout << f << '\n';
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей