代码之家  ›  专栏  ›  技术社区  ›  usr1234567

区分同名的两个函数

  •  0
  • usr1234567  · 技术社区  · 6 年前

    我想在我的项目中使用多个外部cmake文件。不幸的是,两个不同的文件使用相同的cmake函数名 foo .我不想修改这些外部文件。
    有没有方法调用一个特定的函数,或者CMAKE出错?如果其中一个函数有一个命名参数,即, foo(a b c …) foo(DESTINATION a b c …) ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tsyvarev    6 年前

    新函数的定义 替换 前一个同名的。因此,对前一个函数的访问将丢失。

    如果在不同的子项目中使用了不同的功能(但名称相同),则可以尝试将一个子项目构建为 ExternalProject ,所以函数不会发生碰撞。


    在cmake中,任何函数定义都只包含调用方的一条信息- 最小参数数 应该传递给函数。通过使用这些信息,如果要实现函数的重载,就不可能解决它。