It's so weird going from forced immutability and function purity to C++. "void foo(int a[])? why the hell would you call this?"
One of my big complaints with Lua actually was over how it's hard to reason about if something is a reference or value :/ Just have to use it enough to learn when a table is modified in place or not