Я отслеживаю код hevc. столкнулся со странной функцией без оператора:
Void encode( Bool bEos,
TComPicYuv* pcPicYuvOrg,
TComPicYuv* pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, // used for SNR calculations. Picture in original colour space.
TComList<TComPicYuv*>& rcListPicYuvRecOut,
std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded );
и где-то это называют
m_cTEncTop.encode( bEos, flush ? 0 : pcPicYuvOrg, flush ? 0 : &cPicYuvTrueOrg, snrCSC, m_cListPicYuvRec, outputAccessUnits, iNumEncoded, m_isTopFieldFirst );
Я не могу проследить вперед из-за этой функции. Он ничего не делает
То, что вы смотрите на это декларация (прототип функции). Где-то будет определение (функция с тем же именем и подписью, с утверждениями).
Если нет определения, будет ошибка компоновщика (потому что есть код, пытающийся вызвать его, как вы указали), если только код вызова не был оптимизирован (что я считаю маловероятным).
Я бы сказал … продолжайте поиск и тщательно проверяйте каждый поисковый запрос.
Обновить: Обычно есть пары файлов, например NameOfClass.h
а также NameOfClass.cpp
, Объявление (без операторов) в файле .h (заголовок), определение (с операторами) в файле .cpp.
Как указывает @Sven, он также может находиться в библиотеке, поэтому ситуация может стать немного мутной. Но хорошие программисты на С ++ могли бы поставить название библиотеки (NameOfLibrary.so
или .a или .dll) вверху их файла .h.
Других решений пока нет …