Declaring some methods of GPIO_Output, GPIOInput and GPIO_OpenDrain as const allows user to declare objects from that class to be const, which makes it possible to the object be mapped in Flash or better to be optimized by compiler, do not generating waste of memory. Once those methods do not change object internal value, they are actually const. And by previous definition, as they descend from StrongValue uint32, they would be allocated in RAM, which is more valuable, but their number is expected not to change.
Declaring some methods of GPIO_Output, GPIOInput and GPIO_OpenDrain as
const
allows user to declare objects from that class to be const, which makes it possible to the object be mapped in Flash or better to be optimized by compiler, do not generating waste of memory. Once those methods do not change object internal value, they are actually const. And by previous definition, as they descend from StrongValue uint32, they would be allocated in RAM, which is more valuable, but their number is expected not to change.