On 24.03.21 14:46, Edward Diener via Boost wrote:
Why are consts ignored in function parameters ? Is not void f(int const) different from void f(int) ? In one the argument passed can not be changed and in the other it can. How can they be the same ?
That's an implementation detail of the function f that doesn't (and shouldn't) affect the interface, and the type of f is part of its interface. Let's say that I write a function like this: void countdown(int start_val) { while (start_val >= 0) { std::cout << start_val << "\n" << std::flush; --start_val; } } Later I realize that changing the value of the start_val parameter is confusing, so I rewrite the function like this: void countdown(int const start_val) { for (int val = start_val; val >= 0; --val) { std::cout << val << "\n" << std::flush; } } I am (and should be) allowed to make this change without affecting any users of my function because it is purely an implementation change. -- Rainer Deyke (rainerd@eldwood.com)