nice! But for some reason I believe this would work for argument functions
double f(quantitysi::length v){ return 1.;} ... quantitycgs::lengh A = 4.*cgs::centimeter f(A); // doesn't work! not matching function
why is this? isn't the argument of the call a sort of construction argument for the function argument, or is more like a plain assignment. Is there a way to force the automatic conversion of the function call.
Or I am forced to use this other long call?
f(quantitysi::length(A));
Yes. The constructor is explicit.
Or you can write it as a template function that takes any argument that is a quantity of length :
#include <iostream>
#include