Github issue #643 remove use of deprecated standard templates

Remove use of std::unary_function and std::binary_function which were
deprecated in C+11.

Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
Change-Id: I9e4624f570b475595c9e28bdf185ddcc2ddceb2f
diff --git a/src/backends/reference/workloads/Abs.hpp b/src/backends/reference/workloads/Abs.hpp
index b05f2e3..6061667 100644
--- a/src/backends/reference/workloads/Abs.hpp
+++ b/src/backends/reference/workloads/Abs.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct abs : public std::unary_function<T, T>
+template<typename T>
+struct abs
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {
diff --git a/src/backends/reference/workloads/Exp.hpp b/src/backends/reference/workloads/Exp.hpp
index 1a04672..9440bf6 100644
--- a/src/backends/reference/workloads/Exp.hpp
+++ b/src/backends/reference/workloads/Exp.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct exp : public std::unary_function<T, T>
+template<typename T>
+struct exp
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {
diff --git a/src/backends/reference/workloads/Log.hpp b/src/backends/reference/workloads/Log.hpp
index 98b6b82..46c04d9 100644
--- a/src/backends/reference/workloads/Log.hpp
+++ b/src/backends/reference/workloads/Log.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct log : public std::unary_function<T, T>
+template<typename T>
+struct log
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {
diff --git a/src/backends/reference/workloads/Maximum.hpp b/src/backends/reference/workloads/Maximum.hpp
index 97df19d..ca4b480 100644
--- a/src/backends/reference/workloads/Maximum.hpp
+++ b/src/backends/reference/workloads/Maximum.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct maximum : public std::binary_function<T, T, T>
+template<typename T>
+struct maximum
     {
+        typedef T result_type;
+        typedef T first_argument_type;
+
         T
         operator () (const T&  inputData0, const T&  inputData1) const
         {
diff --git a/src/backends/reference/workloads/Minimum.hpp b/src/backends/reference/workloads/Minimum.hpp
index 0c05398..f142277 100644
--- a/src/backends/reference/workloads/Minimum.hpp
+++ b/src/backends/reference/workloads/Minimum.hpp
@@ -9,8 +9,11 @@
 {
 
 template<typename T>
-struct minimum : public std::binary_function<T, T, T>
+struct minimum
 {
+    typedef T result_type;
+    typedef T first_argument_type;
+
     T
     operator()(const T& input1, const T& input2) const
     {
diff --git a/src/backends/reference/workloads/Rsqrt.hpp b/src/backends/reference/workloads/Rsqrt.hpp
index 47ebcf3..1b8e6c3 100644
--- a/src/backends/reference/workloads/Rsqrt.hpp
+++ b/src/backends/reference/workloads/Rsqrt.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct rsqrt : public std::unary_function<T, T>
+template<typename T>
+struct rsqrt
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {
diff --git a/src/backends/reference/workloads/Sin.hpp b/src/backends/reference/workloads/Sin.hpp
index b71c33b..8ff78b4 100644
--- a/src/backends/reference/workloads/Sin.hpp
+++ b/src/backends/reference/workloads/Sin.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct sin : public std::unary_function<T, T>
+template<typename T>
+struct sin
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {
diff --git a/src/backends/reference/workloads/Sqrt.hpp b/src/backends/reference/workloads/Sqrt.hpp
index e4ff6a4..ae5afa7 100644
--- a/src/backends/reference/workloads/Sqrt.hpp
+++ b/src/backends/reference/workloads/Sqrt.hpp
@@ -9,9 +9,12 @@
 
 namespace armnn
 {
-    template<typename T>
-struct sqrt : public std::unary_function<T, T>
+template<typename T>
+struct sqrt
     {
+        typedef T result_type;
+        typedef T argument_type;
+
         T
         operator () (const T&  inputData) const
         {