Typedef签名与签名别名

时间:2014-04-28 22:57:59

标签: c++ c++11 alias typedef

为什么我可以编译以下内容:

typedef void OnSuccessSignature(PathFinderType::EdgePath);

但不是吗?:

using OnSuccessSignature = void(PathFinderType::EdgePath);

第二行给出C2061: syntax error : identifier 'EdgePath'

如果它有所不同,该类的相关部分被定义为

class MapManager : public Service<MapManager>
{
public:
    //  Aliases.
    using PathFinderType = AStar<Map::MapNodeType, WeightedEuclideanDistance<Map::MapNodeType>>;
    using OnSuccessSignature = void(PathFinderType::EdgePath);

    //  ...
}

AStar

template <typename TNode, typename THeuristic = EuclideanDistanceSqrd<TNode>>
class AStar : Detail::AStarHeap<TNode>
{
public:
    //  Aliases.
    using EdgePath = list<typename TNode::EdgeType*>;

    //   ...
}

我在第一个中加入了第二个标题。

0 个答案:

没有答案