derived_unit is used by the library
to represent a derived unit (IEC 60050, 112-01-19).
[Example 1: usingnamespace si::unit_symbols;
int x = m * m; // error: cannot construct from derived_unit<power<si::metre, 2>>int y = m * s; // error: cannot construct from derived_unit<si::metre, si::second>int z = m / s; // error: cannot construct from derived_unit<si::metre, per<si::second>> — end example]
A program that instantiates a specialization of derived_unit
that is not a possible result of the library specifications
is ill-formed, no diagnostic required.