我可以不写出完整的 return 类型名称吗?
Can I somehow not write out the full qualified return type name?
我有以下嵌套 class 的情况:
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
}
我写方法的全名没问题,但是我真的还需要写return类型的全名吗?在参数括号和函数体内,我可以访问 subdiv_criteria
class 的名称,但这似乎不适用于 return 类型。
最好是这样写
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
}
至少不需要我在 return 类型中重复 PS_OcTree::subdiv_criteria
的内容。 C++11 中有什么我可以使用的吗?它也应该适用于 MSVC 2015 和 Clang 5。
Class-scope 查找适用于 declarator-id 之后的任何内容(这是被定义的函数的名称,即 PS_OcTree::subdiv_criteria::elementInfo
) ,包括尾随 return 类型。因此,
auto PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n) -> Element
{
}
我有以下嵌套 class 的情况:
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
}
我写方法的全名没问题,但是我真的还需要写return类型的全名吗?在参数括号和函数体内,我可以访问 subdiv_criteria
class 的名称,但这似乎不适用于 return 类型。
最好是这样写
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
}
至少不需要我在 return 类型中重复 PS_OcTree::subdiv_criteria
的内容。 C++11 中有什么我可以使用的吗?它也应该适用于 MSVC 2015 和 Clang 5。
Class-scope 查找适用于 declarator-id 之后的任何内容(这是被定义的函数的名称,即 PS_OcTree::subdiv_criteria::elementInfo
) ,包括尾随 return 类型。因此,
auto PS_OcTree::subdiv_criteria::elementInfo(
unsigned int const& poly_index, node const* n) -> Element
{
}