Re:More Dirty Coding Tricks from Game Developers (2010)
by golergka on Sunday August 02, 2015 @07:19PM
(#9992908)
Can you please provide some examples, so I can better understand what you mean?
[ Parent
| on HN ]
Re:More Dirty Coding Tricks from Game Developers (2010)
by agumonkey on Sunday August 02, 2015 @09:38PM
(#9993255)
I'm no C nor Ada expert, but I think he means in C `const` is a data type modifier, whereas in Ada it's a function modifier, making the concerns orthogonal. I'm never happy when I see warning about `const` being lifted by some function in C. I think that's what parent is referring to.
Re:More Dirty Coding Tricks from Game Developers (2010)
by trashcan on Sunday August 02, 2015 @07:33PM
(#9992946)
If you make a function that accepts an unsigned int, and then you try to pass in a const unsigned int, you will need to either typecast it, make a new function, or change the function to only accept const unsigned ints.
Although it's been a long time since I coded in C/C++, correct me if I'm wrong.
Re:More Dirty Coding Tricks from Game Developers (2010)
by StephanTLavavej on Sunday August 02, 2015 @08:00PM
(#9993034)
You're incorrect, for C89 through C++17. I'd recommend not making statements about languages you've forgotten.
In the C++ Working Paper, the Standardese is N4527 5.2.2 [expr.call]/4 "When a function is called, each parameter (8.3.5) shall be initialized (8.5, 12.8, 12.1) with its corresponding argument." followed by 8.5 [dcl.init] where /17.8 has a nice example:
"Note: An expression of type "cv1 T" can initialize an object of type "cv2 T" independently of the cv-qualifiers cv1 and cv2. int a; const int b = a; int c = b;"
(A "cv-qualifier" is const or volatile; they behave similarly in many contexts, hence the collective terminology for convenience.)