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