Например у меня есть функция int foo() {return 0;};. И где нибудь в main я буду вызывать foo() , а как оператор () работает в данном случае ?
foo() используется комбинация символов (). Это может быть и оператор вызова функции, и часть синтаксиса приведения типа в функциональной нотации. Компилятор не может определить, что это такое, на основе лишь внешнего анализа синтаксиса.() находится идентификатор foo. Это приводит к запуску процесса поиска имен (name lookup), который ищет имя foo для того, чтобы выяснить, что же оно из себя представляет. Процесс поиска имен выясняет, что foo - это имя функции. Это значит, что слева от () располагается выражение типа "функция" и что () является именно оператором вызова функции. Также из этого следует, что в данном случае используется встроенный оператор (). foo и предоставленных аргументов выбирает самую подходящую версию функции foo. В вашем примере аргументов нет, а кандидат всего один. То есть процесс разрешения перегрузки выбирает именно вашу единственную функцию foo. foo. И получение результата, если вы его получаете.Вот так работает встроенный оператор ().
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости