gpt4 book ai didi

c++ - auto foo(...) ->decltype(this) 有什么解决方法吗?

转载 作者:太空狗 更新时间:2023-10-29 20:46:08 26 4
gpt4 key购买 nike

我有下一个类并尝试声明成员函数,该函数将返回指向该类型但下一个代码的指针

template<class Key, int b> class b_plus_tree_inner_node {
auto split() -> decltype(this) {}
};

给我这样的错误

invalid use of ‘this’ at top level

我可以用另一种方式来做吗,我现在关于 typedef 的存在,但是 decltype 可能吗?

编辑:

我想完成这个:

b_plus_tree_inner_node<Key, b>* split() {...}

最佳答案

如果你想要一个成员函数,在类中声明它:

template<class Key, int b> class b_plus_tree_inner_node {
b_plus_tree_inner_node* split(){}
// also valid:
//b_plus_tree_inner_node<Key, b>* split(){}
};

如果你想要一个非成员函数,将其设为模板:

template<class Key, int b>
b_plus_tree_inner_node<Key, b>* split(){}

该标准确实允许您编写 auto split() -> decltype(this) {} 但 GCC 4.6 尚不支持它(GCC 4.7 的主干支持)。

关于c++ - auto foo(...) ->decltype(this) 有什么解决方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892083/

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