diff options
Diffstat (limited to 'boost/serialization/factory.hpp')
-rw-r--r-- | boost/serialization/factory.hpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/boost/serialization/factory.hpp b/boost/serialization/factory.hpp index db5b1a9226..2db7e7e36c 100644 --- a/boost/serialization/factory.hpp +++ b/boost/serialization/factory.hpp @@ -48,32 +48,33 @@ namespace boost { \ namespace serialization { \ template<> \ T * factory<T, N>(std::va_list ap){ \ - BOOST_PP_IF(BOOST_PP_GREATER(N,0) \ - ,A0 a0 = va_arg(ap, A0); \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,1) \ - ,A1 a1 = va_arg(ap, A1); \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,2) \ - ,A2 a2 = va_arg(ap, A2); \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,3) \ - ,A3 a3 = va_arg(ap, A3); \ - ,BOOST_PP_EMPTY() \ - )))) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 0) \ + , A0 a0 = va_arg(ap, A0);, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 1) \ + , A1 a1 = va_arg(ap, A1);, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 2) \ + , A2 a2 = va_arg(ap, A2);, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 3) \ + , A3 a3 = va_arg(ap, A3);, BOOST_PP_EMPTY()) \ return new T( \ - BOOST_PP_IF(BOOST_PP_GREATER(N,0) \ - ,a0 \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,1) \ - ,a1 \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,2) \ - ,a2 \ - ,BOOST_PP_IF(BOOST_PP_GREATER(N,3) \ - ,a3 \ - ,BOOST_PP_EMPTY() \ - )))) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 0) \ + , a0, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 1)) \ + , BOOST_PP_COMMA, BOOST_PP_EMPTY)() \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 1) \ + , a1, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 2)) \ + , BOOST_PP_COMMA, BOOST_PP_EMPTY)() \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 2) \ + , a2, BOOST_PP_EMPTY()) \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 3)) \ + , BOOST_PP_COMMA, BOOST_PP_EMPTY)() \ + BOOST_PP_IF(BOOST_PP_GREATER(N, 3) \ + , a3, BOOST_PP_EMPTY()) \ ); \ } \ } \ -} \ -/**/ +} /**/ #define BOOST_SERIALIZATION_FACTORY_4(T, A0, A1, A2, A3) \ BOOST_SERIALIZATION_FACTORY(4, T, A0, A1, A2, A3) |