Now this is a bit confusing. I have to admit that I was thinking about the lowest value and thought std::numeric_limits<>::min() returned the lowest but that doesn't seem to be the case for floating point values. It actually returns the smallest/lowest positive value (greater than zero). For the lowest value use std::numeric_limits<>::lowest() instead.
minimum positive normalised value: 2.22507e-308
lowest normalised value: -1.79769e+308
sub-normal values are supported: true
for sub-mormal numbers, loss of precision is denormalization loss (not an inexact result): false
smallest positive sub-normal value: 4.94066e-324