Browse Source

Improved STLUtils class

- put template declaration in front of method instead of having
it on class level
patrick 4 years ago
parent
commit
29a05450d8
4 changed files with 29 additions and 28 deletions
  1. 2 2
      source/io/xml/XMLNode.cpp
  2. 3 2
      source/utils/STLUtils.hpp
  3. 12 12
      test/cases/io/FileTest.cpp
  4. 12 12
      test/cases/utils/STLUtilsTest.cpp

+ 2 - 2
source/io/xml/XMLNode.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-24
- * Changed:         2020-09-26
+ * Changed:         2020-10-22
  *
  * */
 
@@ -263,7 +263,7 @@ bool ls_std::XMLNode::_hasAttribute(const std::string &_name)
 
 bool ls_std::XMLNode::_hasChild(const std::shared_ptr<ls_std::XMLNode> &_child)
 {
-  return ls_std::STLUtils<std::list<std::shared_ptr<ls_std::XMLNode>>, std::shared_ptr<ls_std::XMLNode>>::contains(this->children, _child);
+  return ls_std::STLUtils::contains(this->children, _child);
 }
 
 bool ls_std::XMLNode::_hasChild(const std::string &_name)

+ 3 - 2
source/utils/STLUtils.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2020-09-04
+ * Changed:         2020-10-22
  *
  * */
 
@@ -11,15 +11,16 @@
 #define LS_STD_STL_UTILS_HPP
 
 #include <algorithm>
+#include <list>
 
 namespace ls_std {
-  template<class container, class dataType>
   class STLUtils {
     public:
 
       STLUtils() = default;
       ~STLUtils() = default;
 
+      template<class container, class dataType>
       static bool contains(container _container, const dataType& _value) {
         return std::find(_container.begin(), _container.end(), _value) != _container.end();
       }

+ 12 - 12
test/cases/io/FileTest.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-15
- * Changed:         2020-08-19
+ * Changed:         2020-10-22
  *
  * */
 
@@ -208,19 +208,19 @@ namespace {
     ASSERT_EQ(7, filesInDirectory.size());
 
     expectedFile = file.getAbsoluteFilePath() + separator + ".";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "..";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "another_file.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "bla.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "hello.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "list_test_sub";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + ".hidden_file.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
   }
 
   TEST_F(FileTest, listFiles)
@@ -234,13 +234,13 @@ namespace {
     ASSERT_EQ(4, filesInDirectory.size());
 
     expectedFile = file.getAbsoluteFilePath() + separator + "another_file.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "bla.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + "hello.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
     expectedFile = file.getAbsoluteFilePath() + separator + ".hidden_file.txt";
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(filesInDirectory, expectedFile)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(filesInDirectory, expectedFile)));
   }
 
   TEST_F(FileTest, makeDirectory)

+ 12 - 12
test/cases/utils/STLUtilsTest.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2020-08-17
+ * Changed:         2020-10-22
  *
  * */
 
@@ -29,14 +29,14 @@ namespace {
     std::vector<int> values {1, 13, 7, 8};
     std::list<std::string> names {"Tim", "Alex", "Nadine"};
 
-    ASSERT_TRUE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 1)));
-    ASSERT_TRUE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 13)));
-    ASSERT_TRUE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 7)));
-    ASSERT_TRUE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 8)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(values, 1)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(values, 13)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(values, 7)));
+    ASSERT_TRUE((ls_std::STLUtils::contains(values, 8)));
 
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(names, "Tim")));
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(names, "Alex")));
-    ASSERT_TRUE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(names, "Nadine")));
+    ASSERT_TRUE((ls_std::STLUtils::contains(names, "Tim")));
+    ASSERT_TRUE((ls_std::STLUtils::contains(names, "Alex")));
+    ASSERT_TRUE((ls_std::STLUtils::contains(names, "Nadine")));
   }
 
   TEST_F(STLUtilsTest, containsNegative)
@@ -44,10 +44,10 @@ namespace {
     std::vector<int> values{1, 13, 7, 8};
     std::list<std::string> names{"Tim", "Alex", "Nadine"};
 
-    ASSERT_FALSE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 55)));
-    ASSERT_FALSE((ls_std::STLUtils<std::vector<int>, int>::contains(values, 9)));
+    ASSERT_FALSE((ls_std::STLUtils::contains(values, 55)));
+    ASSERT_FALSE((ls_std::STLUtils::contains(values, 9)));
 
-    ASSERT_FALSE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(names, "Lena")));
-    ASSERT_FALSE((ls_std::STLUtils<std::list<std::string>, std::string>::contains(names, "Mirco")));
+    ASSERT_FALSE((ls_std::STLUtils::contains(names, "Lena")));
+    ASSERT_FALSE((ls_std::STLUtils::contains(names, "Mirco")));
   }
 }