Swift не допускает перегрузки функций в заголовках target-c или c - PullRequest
0 голосов
/ 28 июня 2018

У меня есть какой-то быстрый код, который не очень важен в контексте вопроса. Также у меня есть заголовок моста Objective-C ObjC-Swift-Bridging.h:

#import "my_objective_cpp_header.h"

И у меня есть бесплатные функции стиля C / C ++ в этом заголовке:

inline void foo() {
}

inline void foo(int i) {
}

Когда я пытаюсь скомпилировать его в xcode 9.2 с включенным swift 4.0, я получаю сообщение об ошибке:

my_objective_cpp_header.h:29:13: error: redefinition of 'foo'
inline void foo(int i){
            ^
my_objective_cpp_header.h:26:13: note: previous definition is here
inline void foo() {
            ^
ObjC-Swift-Bridging.h:22:9: note: in file included from ObjC-Swift-Bridging.h:22:
#import "my_objective_cpp_header.h"

То же самое происходит, если я помещаю эти функции в заголовок C / C ++ и пишу

#include "my_cpp_header.h"

в ObjC-Swift-Bridging.h

Итак ... Swift не поддерживает код, который был поддержан в Objective-C ++? Я что-то пропустил?

...