Skip to content
Snippets Groups Projects
Commit 6c0b8c74 authored by Sebastian Eibl's avatar Sebastian Eibl
Browse files

made BlockDataID and ConstBlockDataID trivially copyable

parent 5b84fed6
No related merge requests found
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
#include "core/mpi/RecvBuffer.h" #include "core/mpi/RecvBuffer.h"
#include "core/mpi/SendBuffer.h" #include "core/mpi/SendBuffer.h"
#include <type_traits>
namespace walberla { namespace walberla {
namespace domain_decomposition { namespace domain_decomposition {
...@@ -42,14 +44,14 @@ class BlockDataID ...@@ -42,14 +44,14 @@ class BlockDataID
public: public:
BlockDataID() : id_( 0 ) {} BlockDataID() = default;
explicit BlockDataID( const uint_t id ) : id_( id ) {} explicit BlockDataID( const uint_t id ) : id_( id ) {}
BlockDataID( const BlockDataID& bdid ) : id_( bdid.id_ ) {} BlockDataID( const BlockDataID& bdid ) = default;
void pack( mpi::SendBuffer & buffer ) const { buffer << id_; } void pack( mpi::SendBuffer & buffer ) const { buffer << id_; }
void unpack( mpi::RecvBuffer & buffer ) { buffer >> id_; } void unpack( mpi::RecvBuffer & buffer ) { buffer >> id_; }
BlockDataID& operator=( const BlockDataID& bdid ) { id_ = bdid.id_; return *this; } BlockDataID& operator=( const BlockDataID& bdid ) = default;
bool operator==( const BlockDataID& bdid ) const { return id_ == bdid.id_; } bool operator==( const BlockDataID& bdid ) const { return id_ == bdid.id_; }
bool operator!=( const BlockDataID& bdid ) const { return id_ != bdid.id_; } bool operator!=( const BlockDataID& bdid ) const { return id_ != bdid.id_; }
...@@ -59,26 +61,26 @@ public: ...@@ -59,26 +61,26 @@ public:
private: private:
uint_t id_; uint_t id_ = 0;
}; // class BlockDataID }; // class BlockDataID
static_assert( std::is_trivially_copyable<BlockDataID>::value, "BlockDataID has to be trivially copyable!");
class ConstBlockDataID class ConstBlockDataID
{ {
public: public:
ConstBlockDataID() : id_( 0 ) {} ConstBlockDataID() = default;
explicit ConstBlockDataID( const uint_t id ) : id_( id ) {} explicit ConstBlockDataID( const uint_t id ) : id_( id ) {}
ConstBlockDataID( const BlockDataID& bdid ) : id_( bdid.id_ ) {} ConstBlockDataID( const BlockDataID& bdid ) : id_( bdid.id_ ) {}
ConstBlockDataID( const ConstBlockDataID& bdid ) : id_( bdid.id_ ) {} ConstBlockDataID( const ConstBlockDataID& bdid ) = default;
void pack( mpi::SendBuffer & buffer ) const { buffer << id_; } void pack( mpi::SendBuffer & buffer ) const { buffer << id_; }
void unpack( mpi::RecvBuffer & buffer ) { buffer >> id_; } void unpack( mpi::RecvBuffer & buffer ) { buffer >> id_; }
ConstBlockDataID& operator=( const BlockDataID& bdid ) { id_ = bdid.id_; return *this; } ConstBlockDataID& operator=( const BlockDataID& bdid ) { id_ = bdid.id_; return *this; }
ConstBlockDataID& operator=( const ConstBlockDataID& bdid ) { id_ = bdid.id_; return *this; } ConstBlockDataID& operator=( const ConstBlockDataID& bdid ) = default;
bool operator==( const ConstBlockDataID& bdid ) const { return id_ == bdid.id_; } bool operator==( const ConstBlockDataID& bdid ) const { return id_ == bdid.id_; }
bool operator!=( const ConstBlockDataID& bdid ) const { return id_ != bdid.id_; } bool operator!=( const ConstBlockDataID& bdid ) const { return id_ != bdid.id_; }
...@@ -88,10 +90,10 @@ public: ...@@ -88,10 +90,10 @@ public:
private: private:
uint_t id_; uint_t id_ = 0;
}; // class ConstBlockDataID }; // class ConstBlockDataID
static_assert( std::is_trivially_copyable<ConstBlockDataID>::value, "ConstBlockDataID has to be trivially copyable!");
} // namespace domain_decomposition } // namespace domain_decomposition
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment