幾周前我開始使用模板,但使用它時遇到問題。 我得到這個錯誤:模板類中定義的類型「不命名類型」
自由式/ _gl /../_ convection_selective/Definitions.h:153:9:錯誤:Node_handle'在「Point_set {又名結構Kd_tree_patch>> *,My_point_property_map,CGAL :: Search_traits>>,常量雙*,Construct_coord_iterator>>>}」 沒有指定類型
在編譯的代碼:
「Definitions.h」:
#include "Kd_tree_patch.h"
[...]
template <class SearchTraits, class Splitter_= CGAL::Sliding_midpoint<SearchTraits>, class UseExtendedNode = CGAL::Tag_true > class Kd_tree_patch; //forward declaration
typedef Kd_tree_patch<Search_traits> Point_set;
typedef Point_set::Node_handle Node_handle;
「Kd_tree_patch.h」:
template <class SearchTraits, class Splitter_=Sliding_midpoint<SearchTraits>, class UseExtendedNode = Tag_true >
class Kd_tree_patch {
[...]
typedef Kd_tree_node<SearchTraits, Splitter, UseExtendedNode > Node;
typedef typename Compact_container<Node>::iterator Node_handle;
};
爲什麼Node_handle不被視爲一種類型了嗎?
感謝您的幫助。
你缺少一個'typename'存在(這是一個依賴型)... – Nim
你開始幾周前使用模板?啊呀。 – Salgar
@NIm你的意思是:typedef typename Point_set :: Node_handle Node_handle;如果是這樣,我嘗試了,但我得到了同樣的錯誤。 – Kamouth