Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

93 linhas
1.8 KiB

  1. //
  2. // Lol Engine
  3. //
  4. // Copyright: (c) 2010-2014 Sam Hocevar <sam@hocevar.net>
  5. // (c) 2013-2014 Benjamin "Touky" Huet <huet.benjamin@gmail.com>
  6. // This program is free software; you can redistribute it and/or
  7. // modify it under the terms of the Do What The Fuck You Want To
  8. // Public License, Version 2, as published by Sam Hocevar. See
  9. // http://www.wtfpl.net/ for more details.
  10. //
  11. #pragma once
  12. //
  13. // The tuple class
  14. // ---------------
  15. // A very simple tuple class.
  16. //
  17. #include <lol/base/assert.h>
  18. #include <tuple>
  19. namespace lol
  20. {
  21. template<typename... T>
  22. class tuple : public std::tuple<T...>
  23. {
  24. };
  25. template<typename T1, typename T2, typename T3, typename T4, typename T5,
  26. typename T6, typename T7, typename T8>
  27. class tuple<T1, T2, T3, T4, T5, T6, T7, T8>
  28. {
  29. public:
  30. T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8;
  31. };
  32. template<typename T1, typename T2, typename T3, typename T4, typename T5,
  33. typename T6, typename T7>
  34. class tuple<T1, T2, T3, T4, T5, T6, T7>
  35. {
  36. public:
  37. T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7;
  38. };
  39. template<typename T1, typename T2, typename T3, typename T4, typename T5,
  40. typename T6>
  41. class tuple<T1, T2, T3, T4, T5, T6>
  42. {
  43. public:
  44. T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6;
  45. };
  46. template<typename T1, typename T2, typename T3, typename T4, typename T5>
  47. class tuple<T1, T2, T3, T4, T5>
  48. {
  49. public:
  50. T1 m1; T2 m2; T3 m3; T4 m4; T5 m5;
  51. };
  52. template<typename T1, typename T2, typename T3, typename T4>
  53. class tuple<T1, T2, T3, T4>
  54. {
  55. public:
  56. T1 m1; T2 m2; T3 m3; T4 m4;
  57. };
  58. template<typename T1, typename T2, typename T3>
  59. class tuple<T1, T2, T3>
  60. {
  61. public:
  62. T1 m1; T2 m2; T3 m3;
  63. };
  64. template<typename T1, typename T2>
  65. class tuple<T1, T2>
  66. {
  67. public:
  68. T1 m1; T2 m2;
  69. };
  70. template<typename T1>
  71. class tuple<T1>
  72. {
  73. public:
  74. T1 m1;
  75. };
  76. } /* namespace lol */