/*============================================================================== Copyright (c) 2005-2010 Joel de Guzman Copyright (c) 2010 Thomas Heller Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ template inline typename expression::construct, A0>::type const construct(A0 const& a0) { return expression:: construct, A0>:: make(detail::target(), a0); } template inline typename expression::construct, A0 , A1>::type const construct(A0 const& a0 , A1 const& a1) { return expression:: construct, A0 , A1>:: make(detail::target(), a0 , a1); } template inline typename expression::construct, A0 , A1 , A2>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2) { return expression:: construct, A0 , A1 , A2>:: make(detail::target(), a0 , a1 , a2); } template inline typename expression::construct, A0 , A1 , A2 , A3>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) { return expression:: construct, A0 , A1 , A2 , A3>:: make(detail::target(), a0 , a1 , a2 , a3); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) { return expression:: construct, A0 , A1 , A2 , A3 , A4>:: make(detail::target(), a0 , a1 , a2 , a3 , a4); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4 , A5>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) { return expression:: construct, A0 , A1 , A2 , A3 , A4 , A5>:: make(detail::target(), a0 , a1 , a2 , a3 , a4 , a5); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) { return expression:: construct, A0 , A1 , A2 , A3 , A4 , A5 , A6>:: make(detail::target(), a0 , a1 , a2 , a3 , a4 , a5 , a6); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) { return expression:: construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>:: make(detail::target(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) { return expression:: construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>:: make(detail::target(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8); } template inline typename expression::construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) { return expression:: construct, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>:: make(detail::target(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9); }