This commit introduces 'operator==' overloading over sets.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
#include <set>
+template <typename T> bool operator==(const std::set<T> &lhs, const std::set<T> &rhs)
+{
+ if (rhs.size() != lhs.size())
+ {
+ return false;
+ }
+
+ for (const auto &element : lhs)
+ {
+ if (rhs.find(element) == rhs.end())
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
template <typename T> std::set<T> operator-(const std::set<T> &lhs, const std::set<T> &rhs)
{
std::set<T> res;
#include <gtest/gtest.h>
+TEST(SET, operator_eq)
+{
+ ASSERT_TRUE(std::set<int>({1, 2, 3}) == std::set<int>({1, 2, 3}));
+ ASSERT_FALSE(std::set<int>({1, 3}) == std::set<int>({1, 2, 3}));
+}
+
TEST(SET, operator_diff)
{
const std::set<int> lhs{1, 2, 3};