Skip to content

Commit

Permalink
Fix compiler warnings in C++ runtime / OMSICpp (#10868)
Browse files Browse the repository at this point in the history
- Replace deprecated std::bind1st/bind2nd with lambdas to get rid of
  compiler warnings.
  • Loading branch information
perost committed Jun 20, 2023
1 parent e074f85 commit 53701bc
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 18 deletions.
Expand Up @@ -258,8 +258,7 @@ void multiply_array(const BaseArray<T>& inputArray, const T& b, BaseArray<T>& ou
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform(data, data + inputArray.getNumElems(),
aim, std::bind2nd(std::multiplies<T>(), b));
std::transform(data, data + inputArray.getNumElems(), aim, [&](const T& a) { return a*b; });
}
};

Expand Down Expand Up @@ -343,7 +342,7 @@ void divide_array(const BaseArray<T>& inputArray, const T& b, BaseArray<T>& outp
}
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform(data, data + nelems, aim, std::bind2nd(std::divides<T>(), b));
std::transform(data, data + nelems, aim, [&](const T& a) { return a/b; });
}

template <typename T>
Expand Down Expand Up @@ -412,8 +411,7 @@ void subtract_array_scalar(const BaseArray<T>& inputArray, T b, BaseArray<T>& ou
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform(data, data + inputArray.getNumElems(),
aim, std::bind2nd(std::minus<T>(), b));
std::transform(data, data + inputArray.getNumElems(), aim, [&](const T& a) { return a-b; });
}
}

Expand Down Expand Up @@ -444,8 +442,7 @@ void add_array_scalar(const BaseArray<T>& inputArray, T b, BaseArray<T>& outputA
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* result = outputArray.getData();
std::transform(data, data + inputArray.getNumElems(),
result, std::bind2nd(std::plus<T>(), b));
std::transform(data, data + inputArray.getNumElems(), result, [&](const T& a) { return a+b; });
}
}

Expand Down
13 changes: 5 additions & 8 deletions OMCompiler/SimulationRuntime/cpp/Core/Math/ArrayOperations.cpp
Expand Up @@ -142,8 +142,7 @@ void multiply_array(const BaseArray<T>& inputArray, const T &b, BaseArray<T>& ou
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform (data, data + inputArray.getNumElems(),
aim, std::bind2nd(std::multiplies<T>(), b));
std::transform (data, data + inputArray.getNumElems(), aim, [&](const T& a) { return a*b; });
}
};

Expand Down Expand Up @@ -229,7 +228,7 @@ void divide_array(const BaseArray<T>& inputArray, const T &b, BaseArray<T>& outp
}
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform(data, data + nelems, aim, std::bind2nd(std::divides<T>(), b));
std::transform(data, data + nelems, aim, [&](const T& a) { return a/b; });
}

template <typename T>
Expand All @@ -242,7 +241,7 @@ void divide_array(const T &b, const BaseArray<T>& inputArray, BaseArray<T>& outp
}
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform(data, data + nelems, aim, std::bind1st(std::divides<T>(), b));
std::transform(data, data + nelems, aim, [&](const T& a) { return b/a; });
}

template <typename T>
Expand Down Expand Up @@ -311,8 +310,7 @@ void subtract_array_scalar(const BaseArray<T>& inputArray, T b, BaseArray<T>& ou
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* aim = outputArray.getData();
std::transform (data, data + inputArray.getNumElems(),
aim, std::bind2nd(std::minus<T>(), b));
std::transform (data, data + inputArray.getNumElems(), aim, [&](const T& a) { return a-b; });
}
}

Expand Down Expand Up @@ -342,8 +340,7 @@ void add_array_scalar(const BaseArray<T>& inputArray, T b, BaseArray<T>& outputA
outputArray.setDims(inputArray.getDims());
const T* data = inputArray.getData();
T* result = outputArray.getData();
std::transform (data, data + inputArray.getNumElems(),
result, std::bind2nd(std::plus<T>(), b));
std::transform (data, data + inputArray.getNumElems(), result, [&](const T& a) { return a+b; });
}
}

Expand Down
Expand Up @@ -542,8 +542,7 @@ void SystemDefaultImplementation::storeTime(double time)
// delete up to last value < time - _delay_max
buffer_type::iterator first = _time_buffer.begin();
buffer_type::iterator pos = find_if(first, _time_buffer.end(),
bind2nd(std::greater_equal<double>(),
time - _delay_max));
[=](double t) { return t >= time - _delay_max; });
if (pos != first && --pos != first) {
difference_type n = std::distance(first, pos);
_time_buffer.erase(first, first + n);
Expand Down Expand Up @@ -599,7 +598,7 @@ double SystemDefaultImplementation::delay(unsigned int expr_id,double expr_value
else
{
//find posion in value buffer for queried time
buffer_type::iterator pos = find_if(_time_buffer.begin(),_time_buffer.end(),bind2nd(std::greater_equal<double>(),ts));
buffer_type::iterator pos = find_if(_time_buffer.begin(),_time_buffer.end(), [=](double t) { return t >= ts; });

if(pos!=_time_buffer.end())
{
Expand Down

0 comments on commit 53701bc

Please sign in to comment.