OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref Class Reference

Manual replacement for std::reference_wrapper<RecvTask> More...

#include <communicator.hh>

+ Collaboration diagram for olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref:

Public Member Functions

 ref (std::unique_ptr< RecvTask > &task)
 
RecvTask * operator-> () const
 
bool operator< (const ref &rhs) const
 

Detailed Description

template<typename T, typename DESCRIPTOR>
class olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref

Manual replacement for std::reference_wrapper<RecvTask>

Used to track pending receive requests in std::set.

This is a workaround for problematic external definition of dependently-typed comparision operators for nested classes. Reconsider as soon as depending on C++17 is allowed.

Definition at line 441 of file communicator.hh.

Constructor & Destructor Documentation

◆ ref()

template<typename T , typename DESCRIPTOR >
olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref::ref ( std::unique_ptr< RecvTask > & task)
inline

Definition at line 445 of file communicator.hh.

445: _task(*task) { };

Member Function Documentation

◆ operator->()

template<typename T , typename DESCRIPTOR >
RecvTask * olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref::operator-> ( ) const
inline

Definition at line 447 of file communicator.hh.

448 {
449 return &_task;
450 }

◆ operator<()

template<typename T , typename DESCRIPTOR >
bool olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > >::RecvTask::ref::operator< ( const ref & rhs) const
inline

Definition at line 452 of file communicator.hh.

453 {
454 return _task < rhs._task;
455 }

The documentation for this class was generated from the following file: