use constexpr if
This commit is contained in:
		
							parent
							
								
									5d2cd4d0f2
								
							
						
					
					
						commit
						edc4522f9b
					
				| @ -290,16 +290,18 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|             const auto &cell = | ||||
|                 cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); | ||||
|             auto destination = cell.GetDestinationNodes().begin(); | ||||
|             auto distance = [&heapNode]() -> auto { | ||||
|             auto distance = [&heapNode, &cell]() -> auto { | ||||
|                  if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                         mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) { | ||||
| 
 | ||||
|                 return cell.GetOutDistance(heapNode.node).begin(); | ||||
|                                                      } else { | ||||
|                                                         (void)cell; | ||||
|                                                         (void)heapNode; | ||||
|                                                         return 0; | ||||
|                                                      } | ||||
|             } ; | ||||
|             }(); | ||||
|             for (auto shortcut_weight : cell.GetOutWeight(heapNode.node)) | ||||
|             { | ||||
|                 BOOST_ASSERT(destination != cell.GetDestinationNodes().end()); | ||||
| @ -313,7 +315,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                     if (!toHeapNode) | ||||
|                     { | ||||
|                         if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                          Algorithm>::MapMatchingQueryHeap, | ||||
|                                                          mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) | ||||
|                         { | ||||
|                             const EdgeDistance to_distance = heapNode.data.distance + *distance; | ||||
| @ -327,7 +329,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                     else if (to_weight < toHeapNode->weight) | ||||
|                     { | ||||
|                         if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                          Algorithm>::MapMatchingQueryHeap, | ||||
|                                                          mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) | ||||
|                         { | ||||
|                             const EdgeDistance to_distance = heapNode.data.distance + *distance; | ||||
| @ -351,16 +353,18 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|             const auto &cell = | ||||
|                 cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); | ||||
|             auto source = cell.GetSourceNodes().begin(); | ||||
|              auto distance = [&heapNode]() -> auto { | ||||
|              auto distance = [&heapNode, &cell]() -> auto { | ||||
|                  if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                         mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) { | ||||
| 
 | ||||
|                 return cell.GetOutDistance(heapNode.node).begin(); | ||||
|                                                      } else { | ||||
|                                                         (void)cell; | ||||
|                                                         (void)heapNode; | ||||
|                                                         return 0; | ||||
|                                                      } | ||||
|             } ; | ||||
|             }(); | ||||
|             for (auto shortcut_weight : cell.GetInWeight(heapNode.node)) | ||||
|             { | ||||
|                 BOOST_ASSERT(source != cell.GetSourceNodes().end()); | ||||
| @ -374,7 +378,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                     if (!toHeapNode) | ||||
|                     { | ||||
|                         if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                          Algorithm>::MapMatchingQueryHeap, | ||||
|                                                          mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) | ||||
|                         { | ||||
|                             const EdgeDistance to_distance = heapNode.data.distance + *distance; | ||||
| @ -388,7 +392,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                     else if (to_weight < toHeapNode->weight) | ||||
|                     { | ||||
|                         if constexpr (std::is_same_v<typename SearchEngineData< | ||||
|                                                          Algorithm>::MapMatchingQueryHeap, | ||||
|                                                          mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                                      Heap>) | ||||
|                         { | ||||
|                             const EdgeDistance to_distance = heapNode.data.distance + *distance; | ||||
| @ -434,7 +438,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                 if (!toHeapNode) | ||||
|                 { | ||||
|                     if constexpr (std::is_same_v< | ||||
|                                       typename SearchEngineData<Algorithm>::MapMatchingQueryHeap, | ||||
|                                       typename SearchEngineData<mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                       Heap>) | ||||
|                     { | ||||
|                          const auto node_distance = | ||||
| @ -452,7 +456,7 @@ void relaxOutgoingEdges(const DataFacade<Algorithm> &facade, | ||||
|                 else if (to_weight < toHeapNode->weight) | ||||
|                 { | ||||
|                     if constexpr (std::is_same_v< | ||||
|                                       typename SearchEngineData<Algorithm>::MapMatchingQueryHeap, | ||||
|                                       typename SearchEngineData<mld::Algorithm>::MapMatchingQueryHeap, | ||||
|                                       Heap>) | ||||
|                     { | ||||
|                          const auto node_distance = | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user