У меня есть какой-то быстрый код, который не очень важен в контексте вопроса.
Также у меня есть заголовок моста 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 ++? Я что-то пропустил?