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

175
17 сентября 2018, 05:20

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

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

Answer 1

Попробуйте этот ужас декомпозировать. Известно, что это функция:

возвращаемый_тип имя_функции(тип_аргумента1 арг1, 
                             тип_аргумента2 арг2
                             ...)

далее смотрим, что возвращаемый тип - это ссылка, как и аргументы:

возвращаемый_тип& имя_функции(тип_аргумента1 &арг1, 
                              тип_аргумента2 &арг2
                              ...)

Затем двигайтесь дальше, что функция - шаблонная, т.е. перед именем у нее стоят аргументы-типы в скобках <T,K>, аналогично и возвращаемый тип c аргументами - тоже шаблонные, получаем:

возвращаемый_тип<T,K>& имя_функции<T,K>(тип_аргумента1<T,K> &арг1, 
                                        тип_аргумента2<T,K> &арг2
                                        ...)

И, наконец, перед именами типов стоит пространство имен std:

std::возвращаемый_тип<T,K>& имя_функции<T,K>(std::тип_аргумента1<T,K> &арг1, 
                                             std::тип_аргумента2<T,K> &арг2
                                             ...)

Выделяя все эти составные части мешанина букв и символов обретает ожидаемые очертания. Это действительно приходит с опытом чтения кода на С++.

READ ALSO
Поиск значения по ключу

Поиск значения по ключу

Задан массив пар a, bИ другой массив С

238
Декодирование видеопотока H264 с помощью MediaCodec

Декодирование видеопотока H264 с помощью MediaCodec

Мне в SDP в SIP-пакетах приходят данные про видео

156
Java try конструкция в try

Java try конструкция в try

Имеется ли смысл вкладывать try{} в еще один try{} ? Ведь можно было обойтись одним

165