]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/mp11/test/mp_product.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / mp11 / test / mp_product.cpp
index 3d3d2ad70781a9048958758d3734094c1d1c02b8..f00bc40fb3952d6f7a95a2cdde8a5701e621b84f 100644 (file)
@@ -24,9 +24,10 @@ struct Y1 {};
 struct Z1 {};
 struct Z2 {};
 
-template<class T1, class T2, class T3> struct F {};
-
 template<class T> struct F1 {};
+template<class T1, class T2, class T3> struct F3 {};
+
+template<class...> struct F {};
 
 int main()
 {
@@ -40,8 +41,8 @@ int main()
         using L2 = mp_list<Y1>;
         using L3 = std::pair<Z1, Z2>;
 
-        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product<F, L1, L2, L3>, std::tuple<F<X1, Y1, Z1>, F<X1, Y1, Z2>, F<X2, Y1, Z1>, F<X2, Y1, Z2>, F<X3, Y1, Z1>, F<X3, Y1, Z2>>>));
-        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F>, L1, L2, L3>, std::tuple<F<X1, Y1, Z1>, F<X1, Y1, Z2>, F<X2, Y1, Z1>, F<X2, Y1, Z2>, F<X3, Y1, Z1>, F<X3, Y1, Z2>>>));
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product<F3, L1, L2, L3>, std::tuple<F3<X1, Y1, Z1>, F3<X1, Y1, Z2>, F3<X2, Y1, Z1>, F3<X2, Y1, Z2>, F3<X3, Y1, Z1>, F3<X3, Y1, Z2>>>));
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F3>, L1, L2, L3>, std::tuple<F3<X1, Y1, Z1>, F3<X1, Y1, Z2>, F3<X2, Y1, Z1>, F3<X2, Y1, Z2>, F3<X3, Y1, Z1>, F3<X3, Y1, Z2>>>));
     }
 
     {
@@ -49,8 +50,8 @@ int main()
         using L2 = mp_list<>;
         using L3 = std::pair<Z1, Z2>;
 
-        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product<F, L1, L2, L3>, std::tuple<>>));
-        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F>, L1, L2, L3>, std::tuple<>>));
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product<F3, L1, L2, L3>, std::tuple<>>));
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F3>, L1, L2, L3>, std::tuple<>>));
     }
 
     {
@@ -64,5 +65,10 @@ int main()
         BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F1>, L2>, mp_list<F1<X1>, F1<X2>, F1<X3>>>));
     }
 
+    {
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product<F>, mp_list<F<>>>));
+        BOOST_TEST_TRAIT_TRUE((std::is_same<mp_product_q<mp_quote<F>>, mp_list<F<>>>));
+    }
+
     return boost::report_errors();
 }