Example #1
0
bool operator==(either<Left, Right> const& lhs, either<Left, Right> const& rhs)
{
    if (lhs.is_left() == rhs.is_left())
    {
        if (lhs.is_left()) return lhs.left() == rhs.left();
        else return lhs.right() == rhs.right();
    }
    return false;
}
Example #2
0
 void EXPECT_RIGHT_IS(const Expected &expected, either<Left, Right> &value) {
   EXPECT_IS_RIGHT(value);
   EXPECT_EQ(expected, value.right());
   EXPECT_EQ(expected, value.right_opt().get());
   EXPECT_EQ(boost::none, value.left_opt());
   const either<Left, Right> &const_value = value;
   EXPECT_EQ(expected, const_value.right());
   EXPECT_EQ(expected, const_value.right_opt().get());
   EXPECT_EQ(boost::none, const_value.left_opt());
 }
Example #3
0
bool operator==(either<Left, Right> const& lhs, Right const& rhs)
{
    return lhs.is_right() && lhs.right() == rhs;
}