Я не могу вспомнить случай, когда использование ::
для определения области действия приведет к генерированию любого кода. Любой другой оператор, о котором я могу думать, на самом деле (по крайней мере концептуально) генерирует код, он «что-то делает».
Так почему ::
называется «оператором разрешения области видимости» , когда он никоим образом не ведет себя как оператор . Для меня это больше похоже на часть имени, немного лексического пуха, такого как ...
или <
и >
, окружающих список параметров шаблона, или даже ;
. Никто не называет ;
«оператором завершения выражения».
Есть ли конкретная причина, по которой это называется (цитата из стандарта о том, как он как-то ведет себя так, как здесь будет в порядке оператора)? Или название просто исторический багаж?