gpt4 book ai didi

c++ - 我可以明确地专门化 std:shared_ptr::operator ->

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:57 25 4
gpt4 key购买 nike

我第一次问问题,所以祈祷。

我想提供 shared_ptr::operator-> 的特化以下不会在 gcc 4.8.3 上编译

template<> 
widget* std::shared_ptr<widget>::operator->() const
{
return nullptr;
}

我得到以下编译错误错误:‘std::shared_ptr’中没有声明成员函数‘operator->’

我已经尝试了一些关于如何专门化它的变体,但我总是遇到同样的错误。例如将它包装在命名空间 std 范围内,还尝试尾随 reutrn 类型,使其成为 noexcept 等等

最佳答案

不,您不能从 std 中的类型特化成员函数。这样做会使您的程序格式错误(我相信不需要诊断)。即使它“有效”也是非法的。

您可以将整个类型专门化为用户提供的类型,但这基本上涉及从头开始重写 std::shared_ptr

关于c++ - 我可以明确地专门化 std:shared_ptr::operator ->,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36499835/

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