Your poll suffers from a logical fallacy called "begging the question" - basically, it assumes that people don't like the println!() syntax so it only contains options that support that assumption.
Therefore, anyone reading the results will come to the conclusion that "the majority of Rust programmers would prefer @println() for macros", when actually the vast majority of Rust programmers might think all proposed alternatives are worse than the status quo... but we don't know that because those people never get the option.
or println|() or :println(): or whatever other syntax wins. ↩︎
In Rust we always know when something can get modified because it requires a mutable reference (except for inner mutability).
Nonetheless, anything with an exclamation mark might be considered "dangerous" in Rust because it (i.e. macros) can change syntax unexpectedly or do things which normal calls couldn't do (e.g. return from a function).
That's perfectly valid C++ function (and all modern compilers agree). And yes, num here is reference to int.
Thankfully Rust haven't picked up that particular peculiarity of C++ (and all senior developers I personally know had no idea that it's valid C++ till I showed that to them and explained how it works).