#include <limits>
#include <iostream>

template <typename T>
extern auto foo = std::numeric_limits<T>::max();

int main() {
	std::cout << foo<float> << std::endl;  // prints 3.40282e+38
	foo<float> = 42.0;
	std::cout << foo<float> << std::endl;  // prints 42
	return 0;
}