Страницы

Поиск по вопросам

понедельник, 12 ноября 2018 г.

C++ сигнатуры методов

Мой уровень С++ но начальном этапе и у меня возник вопрос. Как вообще можно что-то понять из этой сигнатуры метода?
Я стараюсь понять, что мне нужно передать в эту функцию и не могу понять ничего. Что посоветуете делать с этим? Как правильно нужно читать эту сигнатуру или возможно у кого-то есть какие-то репозитории с открытым кодом С++, где можно учиться просто читать и понимать его?


Ответ

Попробуйте этот ужас декомпозировать. Известно, что это функция:
возвращаемый_тип имя_функции(тип_аргумента1 арг1, тип_аргумента2 арг2 ...)
далее смотрим, что возвращаемый тип - это ссылка, как и аргументы:
возвращаемый_тип& имя_функции(тип_аргумента1 &арг1, тип_аргумента2 &арг2 ...)
Затем двигайтесь дальше, что функция - шаблонная, т.е. перед именем у нее стоят аргументы-типы в скобках , аналогично и возвращаемый тип c аргументами - тоже шаблонные, получаем:
возвращаемый_тип& имя_функции(тип_аргумента1 &арг1, тип_аргумента2 &арг2 ...)
И, наконец, перед именами типов стоит пространство имен std
std::возвращаемый_тип& имя_функции(std::тип_аргумента1 &арг1, std::тип_аргумента2 &арг2 ...)
Выделяя все эти составные части мешанина букв и символов обретает ожидаемые очертания. Это действительно приходит с опытом чтения кода на С++.

Комментариев нет:

Отправить комментарий