Author: | Wojciech Muła |
---|---|
Added on: | 2014-03-19 |
Yes, definitely. Lets see this simple example:
$ cat test.cpp int test(int x) { if (x = 1) return 42; else return 0; } $ g++ -c test.cpp $ g++ -c -Wall test.cpp int test(int x) { if (x = 1) return 42; else return 0; }
Only when we turn on the warnings, a compiler tell us about a possible error. Making the parameter const shows us error:
$ cat test2.cpp int test(int x) { if (x = 1) return 42; else return 0; } $ g++ -c test.cpp test2.cpp: In function ‘int test(int)’: test2.cpp:2:8: error: assignment of read-only parameter ‘x’ if (x = 1) ^
All input parameters should be const, all write-once variables serving as a parameters for some computations should be also const.