Commit 6fc41d35 authored by Thery Sylvain's avatar Thery Sylvain
Browse files

compilation template problem with clang

parent d19ee728
...@@ -29,19 +29,19 @@ AttributeHandler<T, ORBIT, typename PFP::MAP::IMPL> MapHandler<PFP>::getAttribut ...@@ -29,19 +29,19 @@ AttributeHandler<T, ORBIT, typename PFP::MAP::IMPL> MapHandler<PFP>::getAttribut
if(onlyRegistered) if(onlyRegistered)
{ {
if(m_attribs[ORBIT].contains(nameAttr)) if(m_attribs[ORBIT].contains(nameAttr))
return static_cast<MAP*>(m_map)->getAttribute<T, ORBIT>(nameAttr.toStdString()); return static_cast<MAP*>(m_map)->template getAttribute<T, ORBIT>(nameAttr.toStdString());
else else
return AttributeHandler<T, ORBIT, MAP_IMPL>(); return AttributeHandler<T, ORBIT, MAP_IMPL>();
} }
else else
return static_cast<MAP*>(m_map)->getAttribute<T, ORBIT>(nameAttr.toStdString()); return static_cast<MAP*>(m_map)->template getAttribute<T, ORBIT>(nameAttr.toStdString());
} }
template <typename PFP> template <typename PFP>
template <typename T, unsigned int ORBIT> template <typename T, unsigned int ORBIT>
AttributeHandler<T, ORBIT, typename PFP::MAP::IMPL> MapHandler<PFP>::addAttribute(const QString& nameAttr, bool registerAttr) AttributeHandler<T, ORBIT, typename PFP::MAP::IMPL> MapHandler<PFP>::addAttribute(const QString& nameAttr, bool registerAttr)
{ {
AttributeHandler<T, ORBIT, MAP_IMPL> ah = static_cast<MAP*>(m_map)->addAttribute<T, ORBIT>(nameAttr.toStdString()); AttributeHandler<T, ORBIT, MAP_IMPL> ah = static_cast<MAP*>(m_map)->template addAttribute<T, ORBIT>(nameAttr.toStdString());
if(ah.isValid() && registerAttr) if(ah.isValid() && registerAttr)
{ {
registerAttribute(ah); registerAttribute(ah);
......
...@@ -307,7 +307,7 @@ inline AttributeHandler<T, ORBIT, MAP_IMPL> MapCommon<MAP_IMPL>::addAttribute(co ...@@ -307,7 +307,7 @@ inline AttributeHandler<T, ORBIT, MAP_IMPL> MapCommon<MAP_IMPL>::addAttribute(co
{ {
if(!this->template isOrbitEmbedded<ORBIT>()) if(!this->template isOrbitEmbedded<ORBIT>())
this->template addEmbedding<ORBIT>() ; this->template addEmbedding<ORBIT>() ;
AttributeMultiVector<T>* amv = this->m_attribs[ORBIT].addAttribute<T>(nameAttr) ; AttributeMultiVector<T>* amv = this->m_attribs[ORBIT].template addAttribute<T>(nameAttr) ;
return AttributeHandler<T, ORBIT, MAP_IMPL>(this, amv) ; return AttributeHandler<T, ORBIT, MAP_IMPL>(this, amv) ;
} }
...@@ -405,7 +405,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickTraversal() ...@@ -405,7 +405,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickTraversal()
{ {
if(!this->template isOrbitEmbedded<ORBIT>()) if(!this->template isOrbitEmbedded<ORBIT>())
this->template addEmbedding<ORBIT>() ; this->template addEmbedding<ORBIT>() ;
this->m_quickTraversal[ORBIT] = this->m_attribs[ORBIT].addAttribute<Dart>("quick_traversal") ; this->m_quickTraversal[ORBIT] = this->m_attribs[ORBIT].template addAttribute<Dart>("quick_traversal") ;
} }
updateQuickTraversal<ORBIT>() ; updateQuickTraversal<ORBIT>() ;
} }
...@@ -440,7 +440,7 @@ inline void MapCommon<MAP_IMPL>::disableQuickTraversal() ...@@ -440,7 +440,7 @@ inline void MapCommon<MAP_IMPL>::disableQuickTraversal()
{ {
if(this->m_quickTraversal[ORBIT] != NULL) if(this->m_quickTraversal[ORBIT] != NULL)
{ {
this->m_attribs[ORBIT].removeAttribute<Dart>(this->m_quickTraversal[ORBIT]->getIndex()) ; this->m_attribs[ORBIT].template removeAttribute<Dart>(this->m_quickTraversal[ORBIT]->getIndex()) ;
this->m_quickTraversal[ORBIT] = NULL ; this->m_quickTraversal[ORBIT] = NULL ;
} }
} }
...@@ -455,7 +455,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickIncidentTraversal() ...@@ -455,7 +455,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickIncidentTraversal()
this->template addEmbedding<ORBIT>() ; this->template addEmbedding<ORBIT>() ;
std::stringstream ss; std::stringstream ss;
ss << "quickLocalIncidentTraversal_" << INCI; ss << "quickLocalIncidentTraversal_" << INCI;
this->m_quickLocalIncidentTraversal[ORBIT][INCI] = this->m_attribs[ORBIT].addAttribute<NoTypeNameAttribute<std::vector<Dart> > >(ss.str()) ; this->m_quickLocalIncidentTraversal[ORBIT][INCI] = this->m_attribs[ORBIT].template addAttribute<NoTypeNameAttribute<std::vector<Dart> > >(ss.str()) ;
} }
updateQuickIncidentTraversal<ORBIT,INCI>() ; updateQuickIncidentTraversal<ORBIT,INCI>() ;
} }
...@@ -517,7 +517,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickAdjacentTraversal() ...@@ -517,7 +517,7 @@ inline void MapCommon<MAP_IMPL>::enableQuickAdjacentTraversal()
this->template addEmbedding<ORBIT>() ; this->template addEmbedding<ORBIT>() ;
std::stringstream ss; std::stringstream ss;
ss << "quickLocalAdjacentTraversal" << ADJ; ss << "quickLocalAdjacentTraversal" << ADJ;
this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] = this->m_attribs[ORBIT].addAttribute<NoTypeNameAttribute<std::vector<Dart> > >(ss.str()) ; this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] = this->m_attribs[ORBIT].template addAttribute<NoTypeNameAttribute<std::vector<Dart> > >(ss.str()) ;
} }
updateQuickAdjacentTraversal<ORBIT, ADJ>() ; updateQuickAdjacentTraversal<ORBIT, ADJ>() ;
} }
...@@ -564,7 +564,7 @@ inline void MapCommon<MAP_IMPL>::disableQuickAdjacentTraversal() ...@@ -564,7 +564,7 @@ inline void MapCommon<MAP_IMPL>::disableQuickAdjacentTraversal()
{ {
if(this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] != NULL) if(this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] != NULL)
{ {
this->m_attribs[ORBIT].removeAttribute<Dart>(this->m_quickLocalAdjacentTraversal[ORBIT][ADJ]->getIndex()) ; this->m_attribs[ORBIT].template removeAttribute<Dart>(this->m_quickLocalAdjacentTraversal[ORBIT][ADJ]->getIndex()) ;
this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] = NULL ; this->m_quickLocalAdjacentTraversal[ORBIT][ADJ] = NULL ;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment