Lessen boost usage
strictly speaking the gcc diagnostics are wrong, the typedef is actually used once templates are invoked on the structs. simply use the typedef in the structs itself to avoid the warning like is done for other variants.
Removed from C++17.