Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
斯威夫特没有';不允许在objective-c或c头中重载函数_Objective C_C_Swift_Overloading - Fatal编程技术网

斯威夫特没有';不允许在objective-c或c头中重载函数

斯威夫特没有';不允许在objective-c或c头中重载函数,objective-c,c,swift,overloading,Objective C,C,Swift,Overloading,我有一些swift代码,这在问题的上下文中并不重要。 我还有Objective-C桥接头ObjC Swift BRIDING.h: #import "my_objective_cpp_header.h" 我在标题中有免费的C/C++风格的函数: inline void foo() { } inline void foo(int i) { } 当我尝试在启用swift 4.0的xcode 9.2中编译它时,我得到错误: my_objective_cpp_header.h:29:13: err

我有一些swift代码,这在问题的上下文中并不重要。 我还有Objective-C桥接头ObjC Swift BRIDING.h:

#import "my_objective_cpp_header.h"
我在标题中有免费的C/C++风格的函数:

inline void foo() {
}

inline void foo(int i) {
}
当我尝试在启用swift 4.0的xcode 9.2中编译它时,我得到错误:

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 BRIDING.h


所以。。。Swift不支持Objective-C++中支持的代码?我遗漏了什么吗?

C没有函数重载。“…在Objective-C中受支持”-不,相同的C声明将无法在Objective-C源文件中编译。是的。我重新检查了这个。关于Objective-C,您可能是对的,但Objective-C++应该支持这一点。至少我的“foo”函数示例是在*.mm文件中编译的。Swift无法导入(目标-)C++代码,请参见示例。我明白了。这就是我想知道的。谢谢。@ MartinR,事实上,它在Objto-C中没有得到官方支持,但是clang有一个扩展,允许遵循C++规则。但我不确定是否能与斯威夫特沟通。Hsilgos,您是否尝试过使用
\uuuuuuuuuu属性((可重载))