Меня немного смущает интерпретация скобок компилятором. Не могли бы вы объяснить, что на самом деле происходит в таких контекстах?
Приведение: (int) a
или int (a)
Передача параметров:
template <typename t>
int size(t (&)[n]){return n;}
Очевидно, может быть много разных контексты, в которых круглые скобки меняют значение или интерпретацию. Кто-нибудь, пожалуйста, объясните, что именно происходит за занавеской? Как компилятор знает, как интерпретировать в каждом контексте? Есть ли какие-то общие рекомендации или отдельные правила для каждого случая?
Спасибо