From 796593c36c7387a10f862d935cedae41d6610671 Mon Sep 17 00:00:00 2001
From: Nils Kohl <nils.kohl@fau.de>
Date: Wed, 20 Mar 2019 13:44:44 +0100
Subject: [PATCH] Removed boost::array dependency in
 mpi::BufferDataTypeExtensions (was already partly done as part on #59)

---
 src/core/mpi/BufferDataTypeExtensions.h | 33 -------------------------
 tests/core/mpi/BufferTest.cpp           | 17 ++-----------
 2 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/src/core/mpi/BufferDataTypeExtensions.h b/src/core/mpi/BufferDataTypeExtensions.h
index bf51bd9f8..a86884997 100644
--- a/src/core/mpi/BufferDataTypeExtensions.h
+++ b/src/core/mpi/BufferDataTypeExtensions.h
@@ -29,7 +29,6 @@
 #include "core/DataTypes.h"
 #include "core/Optional.h"
 
-#include <boost/array.hpp>
 #include <boost/integer.hpp>
 #include <boost/uuid/uuid.hpp>
 
@@ -593,37 +592,5 @@ inline RecvBuffer & operator>>( RecvBuffer & buf, boost::uuids::uuid & uuid )
 }
 
 
-// ---------------------------------------------------------------------------------------------------------------------
-// --------------------------------------- Boost array Support ----------------------------------------------------------
-// ---------------------------------------------------------------------------------------------------------------------
-
-template<typename T, std::size_t N>
-struct BufferSizeTrait< boost::array< T, N > > {
-   static const bool constantSize = true;
-   static const uint_t size = N * sizeof(T) + BUFFER_DEBUG_OVERHEAD;
-};
-
-
-template<typename ET, typename G, typename T, std::size_t N>
-inline GenericSendBuffer<ET, G> & operator<<( GenericSendBuffer<ET, G> & buf, const boost::array< T, N > & array )
-{
-   buf.addDebugMarker( "ba" );
-   for( auto it = array.begin(); it != array.end(); ++it )
-      buf << *it;
-
-   return buf;
-}
-
-
-template<typename ET, typename T, std::size_t N>
-inline GenericRecvBuffer<ET> & operator>>( GenericRecvBuffer<ET> & buf, boost::array< T, N > & array )
-{
-   buf.readDebugMarker( "ba" );
-   for( auto it = array.begin(); it != array.end(); ++it )
-      buf >> *it;
-
-   return buf;
-}
-
 } //namespace mpi
 } //namespace walberla
diff --git a/tests/core/mpi/BufferTest.cpp b/tests/core/mpi/BufferTest.cpp
index 741edc1f8..b5d43f478 100644
--- a/tests/core/mpi/BufferTest.cpp
+++ b/tests/core/mpi/BufferTest.cpp
@@ -112,15 +112,6 @@ void initCellContainer( T & container )
       container.insert( container.end(), Cell( dist(rng), dist(rng), dist(rng) ) );
 }
 
-template<typename T, std::size_t N>
-void initBoostArray( boost::array< T, N > & array )
-{
-   static std::mt19937 rng;
-   std::uniform_int_distribution<T> dist;
-
-   for( auto it = array.begin(); it != array.end(); ++it )
-      *it = dist( rng );
-}
 
 template<typename T, std::size_t N>
 void initStdArray( std::array< T, N > & array )
@@ -162,7 +153,6 @@ void bufferTest()
    std::map     <unsigned int, walberla::int64_t> stdMap,      stdMapEmpty;
    std::multimap<unsigned int, walberla::int64_t> stdMultiMap, stdMultiMapEmpty;
 
-   boost::array< unsigned int, 19 > boostArray;
    std::array  < unsigned int, 19 > stdArray;
 
    initVecBool(boolStdVec);
@@ -173,7 +163,6 @@ void bufferTest()
    initIntegerAssocContainer(stdMultiSet);
    initIntegerMap(stdMap);
    initIntegerMap(stdMultiMap);
-   initBoostArray(boostArray);
    initStdArray(stdArray);
 
    // Create send buffer and put two values in it
@@ -190,7 +179,7 @@ void bufferTest()
    sb << stdMultiSet << stdMultiSetEmpty;
    sb << stdMap      << stdMapEmpty;
    sb << stdMultiMap << stdMultiMapEmpty;
-   sb << boostArray  << stdArray;
+   sb << stdArray;
 
    // Copying
    //RecvBuffer<T> rb;
@@ -220,7 +209,6 @@ void bufferTest()
    std::map     <unsigned int, walberla::int64_t> recvStdMap,      recvStdMapEmpty;
    std::multimap<unsigned int, walberla::int64_t> recvStdMultiMap, recvStdMultiMapEmpty;
 
-   boost::array<unsigned int, 19> recvBoostArray;
    std::array  <unsigned int, 19> recvStdArray;
 
    rb >> recvD           >> recvI;
@@ -235,7 +223,7 @@ void bufferTest()
    rb >> recvStdMultiSet >> recvStdMultiSetEmpty;
    rb >> recvStdMap      >> recvStdMapEmpty;
    rb >> recvStdMultiMap >> recvStdMultiMapEmpty;
-   rb >> recvBoostArray  >> recvStdArray;
+   rb >> recvStdArray;
 
    // Validate
    WALBERLA_CHECK_FLOAT_EQUAL(recvD,testDouble);
@@ -266,7 +254,6 @@ void bufferTest()
    WALBERLA_CHECK_EQUAL(recvStdMultiMap,      stdMultiMap);
    WALBERLA_CHECK_EQUAL(recvStdMultiMapEmpty, stdMultiMapEmpty);
 
-   WALBERLA_CHECK_EQUAL(recvBoostArray, boostArray);
    WALBERLA_CHECK_EQUAL(recvStdArray,   stdArray);
 }
 
-- 
GitLab