There is decimal scientific notation for specifying a decimal exponent already (123e4 = 123×10^4
).
And I don’t know why the committee preferred base 2 over base 16, I think it really depends on the use case which one is more useful.
There is decimal scientific notation for specifying a decimal exponent already (123e4 = 123×10^4
).
And I don’t know why the committee preferred base 2 over base 16, I think it really depends on the use case which one is more useful.
Yeah, you could express it like that
It’s a C++17 feature that allows specifying a power of two (as decimal exponent) by which the fractional part should be multiplied.
From the documentation (emphasis mine):
If the floating literal begins with the character sequence
0x
or0X
, the floating literal is a hexadecimal floating literal. Otherwise, it is a decimal floating literal.For a hexadecimal floating literal, the significand is interpreted as a hexadecimal rational number, and the digit-sequence of the exponent is interpreted as the (decimal) integer power of 2 by which the significand has to be scaled.
double d = 0x1.4p3; // hex fraction 1.4 (decimal 1.25) scaled by 2^3, that is 10.0
You can find the full documentation here: cppreference.com
So in your example 0x1P1
means 116 * 2^(110) = 2
Have a look at nginx vts. I run it on my Raspberry Pi, it works great and provides everything I need! The auto-installer is easy to use and it can output as html, json or prometheus.
True. Do you happen to know any lightweight alternatives? I’ve been wanting to check out VictoriaMetrics for a while but haven’t found the time…
I am currently running
The last three are quite niche. I use Prometheus + Grafana for Monitoring the Pi itself and for displaying MQTT Stats. Since upgrading to SSDs performance is actually quite good, especially when taking power usage into account.
I never used C++'s scoped locks but as far as I can tell they perform runtime deadlock detection while this crate is compile-time only with near to none code produced in the resulting binary.
This is done by enforcing to either lock every Mutex the thread needs at once or none at all. Thread keys are used to represent this with the type system.