vSMC
vSMC: Scalable Monte Carlo
Classes | Namespaces | Macros
backend_base.hpp File Reference
#include <vsmc/internal/common.hpp>

Go to the source code of this file.

Classes

class  vsmc::InitializeBase< T, Derived >
 Initialize base dispatch class. More...
 
class  vsmc::InitializeBase< T, Virtual >
 Initilaize base dispatch class. More...
 
class  vsmc::MonitorEvalBase< T, Derived >
 Monitor evalution base dispatch class. More...
 
class  vsmc::MonitorEvalBase< T, Virtual >
 Monitor evalution base dispatch class. More...
 
class  vsmc::MoveBase< T, Derived >
 Move base dispatch class. More...
 
class  vsmc::MoveBase< T, Virtual >
 Move base dispatch class. More...
 

Namespaces

 vsmc
 

Macros

#define VSMC_BACKEND_BASE_DESTRUCTOR_PREFIX   virtual
 
#define VSMC_DEFINE_SMP_BACKEND_BASE_SPECIAL(Name)
 
#define VSMC_DEFINE_SMP_BACKEND_BASE_SPECIAL_VIRTUAL(Name)
 
#define VSMC_DEFINE_SMP_BACKEND_FORWARD(Name)
 
#define VSMC_DEFINE_SMP_BACKEND_SPECIAL(SMP, Name)
 
#define VSMC_RUNTIME_ASSERT_SMP_BACKEND_BASE_DERIVED(basename)
 

Macro Definition Documentation

#define VSMC_BACKEND_BASE_DESTRUCTOR_PREFIX   virtual

Definition at line 40 of file backend_base.hpp.

#define VSMC_DEFINE_SMP_BACKEND_BASE_SPECIAL (   Name)
Value:
Name##Base() = default; \
Name##Base(const Name##Base<T, Derived> &) = default; \
Name##Base<T, Derived> &operator=(const Name##Base<T, Derived> &) = \
default; \
Name##Base(Name##Base<T, Derived> &&) = default; \
Name##Base<T, Derived> &operator=(Name##Base<T, Derived> &&) = default; \
VSMC_BACKEND_BASE_DESTRUCTOR_PREFIX ~Name##Base() {}

Definition at line 43 of file backend_base.hpp.

#define VSMC_DEFINE_SMP_BACKEND_BASE_SPECIAL_VIRTUAL (   Name)
Value:
Name##Base() = default; \
Name##Base(const Name##Base<T, Virtual> &) = default; \
Name##Base<T, Virtual> &operator=(const Name##Base<T, Virtual> &) = \
default; \
Name##Base(Name##Base<T, Virtual> &&) = default; \
Name##Base<T, Virtual> &operator=(Name##Base<T, Virtual> &&) = default; \
virtual ~Name##Base() {}

Definition at line 52 of file backend_base.hpp.

#define VSMC_DEFINE_SMP_BACKEND_FORWARD (   Name)
Value:
template <typename T, typename = Virtual> \
class Initialize##Name; \
template <typename T, typename = Virtual> \
class Move##Name; \
template <typename T, typename = Virtual> \
class MonitorEval##Name;

Definition at line 69 of file backend_base.hpp.

#define VSMC_DEFINE_SMP_BACKEND_SPECIAL (   SMP,
  Name 
)
Value:
Name##SMP() = default; \
Name##SMP(const Name##SMP<T, Derived> &) = default; \
Name##SMP<T, Derived> &operator=(Name##SMP<T, Derived> &) = default; \
Name##SMP(Name##SMP<T, Derived> &&) = default; \
Name##SMP<T, Derived> &operator=(Name##SMP<T, Derived> &&) = default; \
~Name##SMP() {}

Definition at line 61 of file backend_base.hpp.

#define VSMC_RUNTIME_ASSERT_SMP_BACKEND_BASE_DERIVED (   basename)
Value:
VSMC_RUNTIME_ASSERT((dynamic_cast<Derived *>(this) != nullptr), \
"DERIVED FROM " #basename \
" WITH INCORRECT **Derived** TEMPLATE PARAMTER");
#define VSMC_RUNTIME_ASSERT(cond, msg)
Definition: assert.hpp:53

Definition at line 77 of file backend_base.hpp.