Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. template < class Args > struct boost_param_result_28move_object
  2. {
  3. typedef typename boost::parameter::aux::unaryfunptr_arg_type <
  4. void (*) (void) >::type type;
  5. };
  6. template < class BoostParameterDummy >
  7. struct boost_param_params_28move_object:
  8. boost::parameter::parameters <
  9. boost::parameter::required <
  10. tag::x_coord,
  11. typename
  12. boost::parameter::aux::unwrap_predicate < void (int) >::type >,
  13. boost::parameter::required <
  14. tag::y_coord,
  15. typename
  16. boost::parameter::aux::unwrap_predicate < void (int) >::type >,
  17. boost::parameter::required <
  18. tag::z_coord,
  19. typename
  20. boost::parameter::aux::unwrap_predicate < void (moveable) >::type > >
  21. {
  22. };
  23.  
  24. typedef
  25. boost_param_params_28move_object < int >
  26. boost_param_parameters_28move_object;
  27. template < class Args > typename boost_param_result_28move_object <
  28. Args >::type boost_param_implmove_object (Args const &args);
  29. template < class ParameterArgumentType0, class ParameterArgumentType1,
  30. class ParameterArgumentType2 >
  31. inline typename boost_param_result_28move_object <
  32. typename boost::parameter::aux::argument_pack <
  33. boost_param_parameters_28move_object, const
  34. ParameterArgumentType0, const
  35. ParameterArgumentType1, const
  36. ParameterArgumentType2 >::type >::type
  37. move_object (const ParameterArgumentType0 & a0,
  38. const ParameterArgumentType1 & a1,
  39. const ParameterArgumentType2 & a2,
  40. typename boost::parameter::aux::match <
  41. boost_param_parameters_28move_object, ParameterArgumentType0,
  42. ParameterArgumentType1, ParameterArgumentType2 >::type =
  43. boost_param_parameters_28move_object ())
  44. {
  45. return
  46. boost_param_implmove_object (boost_param_parameters_28move_object ()
  47. (a0, a1, a2));
  48. }
  49.  
  50. template < class ResultType, class Args, class x_coord_type,
  51. class y_coord_type,
  52. class z_coord_type >
  53. ResultType boost_param_default_28move_object (ResultType (*)(),
  54. Args const &args, int,
  55. x_coord_type & x_coord,
  56. y_coord_type & y_coord,
  57. z_coord_type & z_coord);
  58. template < class Args > typename boost_param_result_28move_object <
  59. Args >::type boost_param_implmove_object (Args const &args)
  60. {
  61. return
  62. boost_param_default_28move_object ((typename
  63. boost_param_result_28move_object <
  64. Args >::type (*)())0, args, 0L,
  65. boost::parameter::aux::cast <
  66. void (int),
  67. Args >::remove_const (boost::
  68. parameter::aux::
  69. cast <
  70. void (int),
  71. Args >::
  72. execute (args
  73. [boost::
  74. parameter::
  75. keyword
  76. <
  77. tag::
  78. x_coord
  79. >::
  80. instance])),
  81. boost::parameter::aux::cast <
  82. void (int),
  83. Args >::remove_const (boost::
  84. parameter::aux::
  85. cast <
  86. void (int),
  87. Args >::
  88. execute (args
  89. [boost::
  90. parameter::
  91. keyword
  92. <
  93. tag::
  94. y_coord
  95. >::
  96. instance])),
  97. boost::parameter::aux::cast <
  98. void (moveable),
  99. Args >::remove_const (boost::
  100. parameter::aux::
  101. cast <
  102. void (moveable),
  103. Args >::
  104. execute (args
  105. [boost::
  106. parameter::
  107. keyword
  108. <
  109. tag::
  110. z_coord
  111. >::
  112. instance])));
  113. } template < class ResultType, class Args, class x_coord_type,
  114. class y_coord_type,
  115. class z_coord_type >
  116. ResultType boost_param_default_28move_object (ResultType (*)(),
  117. Args const &args, int,
  118. x_coord_type & x_coord,
  119. y_coord_type & y_coord,
  120. z_coord_type & z_coord)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement