gpt4 book ai didi

c++ - 继承模板转换运算符

转载 作者:行者123 更新时间:2023-12-01 12:06:53 24 4
gpt4 key购买 nike

考虑以下代码:

template <class R, class... Args>
using function_type = R(*)(Args...);

struct base {
template <class R, class... Args>
constexpr operator function_type<R, Args...>() const noexcept {
return nullptr;
}
};

struct derived: private base {
template <class R, class... Args>
using base::operator function_type<R, Args...>; // ERROR
};
C++20 中是否有替代方法来继承和公开模板化转换函数?

最佳答案

GCC 支持:[demo]

template <class R, class... Args>
using function_type = R(*)(Args...);

struct base {
template <class R, class... Args>
constexpr operator function_type<R, Args...>() const noexcept {
return nullptr;
}
};

struct derived: private base {

using base::operator function_type<auto, auto...>; // No error!
};


int main (){
derived d;
static_cast <int(*)(int)>(d);
}
但我认为这是对可能来自概念-TS 的语言的扩展。

关于c++ - 继承模板转换运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62552906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com