比如是否允许一个函数传入指针,或者传入引用。
swap(T* a, T* b) {}
同时允许
swap(T& a, T& b) {}
C++是否允许这样的重载?
我试验了一下,编译器调用引用方式函数的时候会报错。
如果语言允许,应该怎么声明?
谢谢。
比如是否允许一个函数传入指针,或者传入引用。
swap(T* a, T* b) {}
同时允许
swap(T& a, T& b) {}
C++是否允许这样的重载?
我试验了一下,编译器调用引用方式函数的时候会报错。
如果语言允许,应该怎么声明?
谢谢。
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答476 阅读✓ 已解决
这样的重载应该是允许的,以下是试验代码(加template前也能正常工作)
请问问题是这个意思吗?还有“编译器调用引用方式函数的时候会报错”指的是否是编译器报错?能否给出错误消息?
谢谢
EDIT:
看到你的错误信息里面有如下内容:
函数名应该是和type_traits这个文件(可能编译器自动包含了它)里的swap函数定义重复了,导致报错。可以试试将测试代码中的swap函数改个名称从而解决冲突。
PS 我使用的编译命令:g++ -Wall -o test test.cpp