Tra i numerosi vantaggi di qualificazione const è quello di rendere un'API più comprensibile, ad esempio:C++ di riferimento rvalue e qualificatore const
template<typename T> int function1(T const& in);
// clearly, the input won’t change through function1
Con l'introduzione di riferimenti rvalue, si può beneficiare di inoltro perfetto ma qualificazioni spesso const vengono rimossi, ad esempio:
template<typename T> int function2(T&& in);
// can explicitly forward the input if it's an rvalue
a parte la documentazione, c'è un buon modo per descrivere che function2 non cambierà il suo ingresso?
Se stai semplicemente inoltrando i parametri a qualcun altro, cosa ti importa di cosa è o non è 'const'? Lascialo che si occupino di esso. –