fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <utility>
  4. typedef size_t Header;
  5. template <typename TPayload>
  6. class Message
  7. {
  8. public:
  9. template <typename ...Args>
  10. Message(Args&&... args)
  11. : m_header(sizeof(TPayload)),
  12. m_payload(std::forward<Args>(args)...)
  13. {}
  14. void show_payload() const
  15. {
  16. std::cout << m_payload << '\n';
  17. }
  18. private:
  19. const Header m_header;
  20. const TPayload m_payload;
  21. };
  22.  
  23. int main()
  24. {
  25. Message<std::string> test(10, 'a');
  26. test.show_payload();
  27.  
  28. Message<double> test2(3.14);
  29. test2.show_payload();
  30.  
  31. }
  32.  
Success #stdin #stdout 0s 2960KB
stdin
Standard input is empty
stdout
aaaaaaaaaa
3.14