#include <iostream>
#include <limits>

template <class T>
void show_range(T t) {
	std::cout
		<< "value: " << static_cast<long long>(t) << ", "
		<< "min: " << static_cast<long long>(std::numeric_limits<T>::min()) << ", "
		<< "max: " << static_cast<long long>(std::numeric_limits<T>::max()) << "\n";
}

int main() {
	unsigned char uc = 42;
	show_range(uc);
	show_range(+uc);
	show_range(uc + 0);
	show_range(uc * 1);
	show_range(uc << 0);
	return 0;
}
