Program Listing for File ImplSelect.hpp

Return to documentation for file (include/uit/setup/ImplSelect.hpp)

#pragma once
#ifndef UIT_SETUP_IMPLSELECT_HPP_INCLUDE
#define UIT_SETUP_IMPLSELECT_HPP_INCLUDE

#include "defaults.hpp"

namespace uit {

template<
  template<typename> typename IntraDuct_ = uit::DefaultIntraDuct,
  template<typename> typename ThreadDuct_ = uit::DefaultThreadDuct,
  template<typename> typename ProcDuct_ = uit::DefaultProcDuct
>
struct ImplSelect {

  template<typename ImplSpec>
  using IntraDuct = IntraDuct_<ImplSpec>;

  template<typename ImplSpec>
  using ThreadDuct = ThreadDuct_<ImplSpec>;

  template<typename ImplSpec>
  using ProcDuct = ProcDuct_<ImplSpec>;

};

struct MockSelect
: public ImplSelect<
  uit::DefaultMockDuct,
  uit::DefaultMockDuct,
  uit::DefaultMockDuct
> {};

} // namespace uit

#endif // #ifndef UIT_SETUP_IMPLSELECT_HPP_INCLUDE