1
limerence12138 2018-08-31 20:46:11 +08:00 via Android
原来写过作业,可能是头文件名字不一样吧,我原来遇到过这样的问题,比如第一个可能不叫这个名字之类的,我的回忆加猜测
|
2
innoink OP @ql936611560 这三个都是标准库的头文件,应该不会出错的
|
3
zhanglintc 2018-08-31 20:54:41 +08:00
编译命令是啥, 我遇到过编译命令的坑
|
4
innoink OP @zhanglintc cc -std=c++11 -o m m.cpp
|
5
zhanglintc 2018-08-31 20:58:40 +08:00
@innoink #4 看起来跟我的问题不一样, 没法解答了
|
6
innoink OP 我个人无法理解为什么 gcc 能编译成功,this 指针本来就不能用 shared_ptr<Base>去赋值啊
|
7
hsyu53 2018-08-31 22:20:18 +08:00 2
@innoink std::bind 的第一个参数是 Callable, 而 Callable 的 INVOKE(f, t1, t2, ..., tN) 过程,t1 可以是 smart pointer。
|
9
innoink OP @hsyu53 我看了 cppreference 上,确实说 INVOKE 的第一个参数可以是智能指针,所以 gcc 的行为能理解,但是 clang 为何不行。。
|
10
hsyu53 2018-08-31 22:57:22 +08:00
可能是 clang 3.8 对 c++11 标准的实现不完整,我这 clang(Apple LLVM version 9.1.0 (clang-902.0.39.2))也能编译成功。
|