Performance cost of passing by value vs. by reference or by pointer?

There is one thing nobody mentioned. There is a certain GCC optimization called IPA SRA, that replaces “pass by reference” with “pass by value” automatically: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html (-fipa-sra) This is most likely done for scalar types (eg. int, double, etc), that does not have non-default copy semantics and can fit into cpu registers. This makes void(const … Read more

Is Swift Pass By Value or Pass By Reference

Types of Things in Swift The rule is: Class instances are reference types (i.e. your reference to a class instance is effectively a pointer) Functions are reference types Everything else is a value type; “everything else” simply means instances of structs and instances of enums, because that’s all there is in Swift. Arrays and strings … Read more