Различают две функции с одинаковым именем - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу использовать несколько внешних файлов CMake в моем проекте.К сожалению, два разных файла используют одно и то же имя функции CMake foo.Я не хочу изменять эти внешние файлы.
Есть ли способ вызвать одну конкретную функцию или произойдет ошибка CMake?Поможет ли это, если одна из функций имеет именованный параметр, то есть foo(a b c …) и foo(DESTINATION a b c …)?

1 Ответ

0 голосов
/ 23 ноября 2018

Определение новой функции заменяет предыдущее с тем же именем.Таким образом, доступ к предыдущей функции потерян.

Если в разных подпроектах используются разные функции (но с одинаковыми именами), вы можете попытаться построить один подпроект как ExternalProject, чтобы не произошло столкновения функции.


В CMake любые определения функций содержат единственную информацию для вызывающей стороны - минимальное количество параметров , которое должно быть передано функции.Используя эту информацию, невозможно устранить перегрузку функции, если она будет реализована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...