GSL.util: Utilities
finally
//finally(f)
makes afinal_action{f}
with a destructor that invokesf
narrow_cast
//narrow_cast<T>(x)
isstatic_cast<T>(x)
narrow
//narrow<T>(x)
isstatic_cast<T>(x)
ifstatic_cast<T>(x) == x
or it throwsnarrowing_error
[[implicit]]
// "Marker" to put on single-argument constructors to explicitly make them non-explicit.move_owner
//p = move_owner(q)
meansp = q
but ???