gpt4 book ai didi

c++ - 我能以某种方式不写出完整的限定返回类型名称吗?

转载 作者:搜寻专家 更新时间:2023-10-30 23:53:47 25 4
gpt4 key购买 nike

我有以下嵌套类的情况:

class PS_OcTree {
public:
// stuff ...

private:
struct subdiv_criteria : public octree_type::subdiv_criteria {
PS_OcTree* tree;
subdiv_criteria(PS_OcTree* _tree) : tree(_tree) { }
virtual Element elementInfo(unsigned int const& elem, node const* n) override;
};
};

为了在.cpp文件中实现这个方法,我这样写

PS_OcTree::subdiv_criteria::Element
PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n)
{
// implementation goes here
}

我可以写方法的全名,但我真的还需要写返回类型的全名吗?在参数括号和函数体内,我可以访问 subdiv_criteria 类的名称,但这似乎不适用于返回类型。

最好,我想写一些类似的东西

Element PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n)
{
// implementation goes here
}

// or

auto PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n)
{
// implementation goes here
}

至少不需要我在返回类型中重复 PS_OcTree::subdiv_criteria 的东西。 C++11 中有什么我可以使用的吗?它应该也适用于 MSVC 2015 和 Clang 5。

最佳答案

类范围查找适用于 declarator-id(这是定义的函数的名称,即 PS_OcTree::subdiv_criteria::elementInfo)之后的任何内容,包括尾随返回类型。因此,

auto PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n) -> Element
{
}

关于c++ - 我能以某种方式不写出完整的限定返回类型名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317921/

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