Guest User

Untitled

a guest
Jul 6th, 2016
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. template<size_t I = 0, typename DataType, typename... Tp>
  2. void Forward(const DataType& input, std::tuple<Tp...>& network)
  3. {
  4.     std::get<I>(network).InputParameter() = input;
  5.  
  6.     std::get<I>(network).Forward(std::get<I>(network).InputParameter(),
  7.                            std::get<I>(network).OutputParameter());
  8.  
  9.     ForwardTail<I + 1, Tp...>(network);
  10. }
  11.  
  12. template<size_t I = 1, typename... Tp>
  13. typename std::enable_if<I == sizeof...(Tp), void>::type
  14. ForwardTail(std::tuple<Tp...>& network)
  15. {
  16.     LinkParameter(network);
  17. }
  18.  
  19. template<size_t I = 1, typename... Tp>
  20. typename std::enable_if<I < sizeof...(Tp), void>::type
  21. ForwardTail(std::tuple<Tp...>& network)
  22. {
  23.     std::get<I>(network).Forward(std::get<I - 1>(network).OutputParameter(),
  24.         std::get<I>(network).OutputParameter());
  25.  
  26.     ForwardTail<I + 1, Tp...>(network);
  27. }
Add Comment
Please, Sign In to add comment