#include <iostream>
#include <cmath>

template <typename T>
const auto PI = std::acos(static_cast<T>(-1));

template <typename T>
const T PI2 = std::acos(static_cast<T>(-1));

template <typename T>
const T DEG_TO_RAD = PI2<T> / 180;

int main()
{
	// uncomment this to fix CASE 1 in VS2017
	// PI<float>; 
	
	// uncomment this to fix CASE 2 in VS2017
	// PI2<float>;

	// CASE 1 - prints 0 should be 3.14159
	auto func = []() { std::cout << PI<float> << std::endl; };
	func();

	// CASE 2 - prints 0 should be 0.0174533
	std::cout << DEG_TO_RAD<float> << std::endl;
}