小编Łuk*_*ski的帖子

从右值引用到base的构造函数 - 可行(gcc)或不(clang) - 谁是对的

最近有一个恭维问题,由此片段说明:

struct Base
{
};

template<typename T>
struct A : Base
{
    A(){}
    A(Base&&) {}
};

A<int> foo()
{
    A<double> v;
    return v;
}


int main()
{
    auto d = foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Gcc说没关系,但是clang不同意并说"候选构造函数不可行:第一个参数A(Base &&){}"没有已知的从'A'到'Base &&'的转换,请亲自看看:https://godbolt.org/Z/Y7mwnU

任何一种读者是否能够帮助支持任何一种观点?

c++ gcc return clang language-lawyer

7
推荐指数
1
解决办法
182
查看次数

标签 统计

c++ ×1

clang ×1

gcc ×1

language-lawyer ×1

return ×1