MCPcopy Create free account
hub / github.com/Icinga/icinga2 / operator%

Method operator%

lib/base/value-operators.cpp:379–390  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377}
378
379Value icinga::operator%(const Value& lhs, const Value& rhs)
380{
381 if (rhs.IsEmpty())
382 BOOST_THROW_EXCEPTION(std::invalid_argument("Right-hand side argument for operator % is Empty."));
383 else if ((rhs.IsNumber() || lhs.IsNumber()) && rhs.IsNumber()) {
384 if (static_cast<double>(rhs) == 0)
385 BOOST_THROW_EXCEPTION(std::invalid_argument("Right-hand side argument for operator % is 0."));
386
387 return static_cast<int>(lhs) % static_cast<int>(rhs);
388 } else
389 BOOST_THROW_EXCEPTION(std::invalid_argument("Operator % cannot be applied to values of type '" + lhs.GetTypeName() + "' and '" + rhs.GetTypeName() + "'"));
390}
391
392Value icinga::operator%(const Value& lhs, double rhs)
393{

Callers

nothing calls this directly

Calls 4

IsNumberMethod · 0.80
ValueClass · 0.70
IsEmptyMethod · 0.45
GetTypeNameMethod · 0.45

Tested by

no test coverage detected