Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #ifndef __OPERATION_HPP__
  2. #define __OPERATION_HPP__
  3.  
  4. namespace Op {
  5.     template<typename... Args>
  6.     struct pack {};
  7.  
  8.     template <
  9.         class I,
  10.         class O,
  11.         typename = typename I::args,
  12.         typename = typename O::T1,
  13.         typename = typename O::T2>
  14.     class _Operation;
  15.  
  16.     template <
  17.         class I,
  18.         class O,
  19.         typename... Args>
  20.     class _Operation <I, O, pack<Args...>, typename O::T1, typename O::T2>{
  21.     public:
  22.         typedef I input_t;
  23.         typedef O output_t;
  24.     };
  25.  
  26.     template <
  27.         class I,
  28.         class O>
  29.     using Operation = _Operation<I, O>;
  30.  
  31. }
  32.  
  33. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement