Mam następujący kod:C++ czy typ zmiennej zależy od kontekstu?
// Case #1
float f = 1.0f;
float f2 = sqrt(f * pi);
// Case #2
double d = 1.0;
double d2 = sqrt(d * pi);
Czy jest jakiś sposób, aby zdefiniować zmienną pi
tak że operator*
i sqrt
będzie działać na float
s w przypadku # 1, ale będzie działać na double
s w przypadku # 2?
Być może jest to możliwe z szablonami zmiennymi C++ 14?
@ LWimsey Tak, literówka, dzięki. – Barry
@ T.C. Coś w tym stylu? – Barry
Możesz uczynić go prostszym - domyślna implementacja powinna definiować wartość "double" zamiast "int". 'template constexpr double pi = 3.0;' –
Orient