//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. // // Copyright 2014 National Technology & Engineering Solutions of Sandia, LLC (NTESS). // Copyright 2014 UT-Battelle, LLC. // Copyright 2014 Los Alamos National Security. // // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // // Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ // **** DO NOT EDIT THIS FILE!!! **** // This file is automatically generated by FunctionInterfaceDetailPost.h.in #ifndef vtk_m_internal_FunctionInterfaceDetailPost_h #define vtk_m_internal_FunctionInterfaceDetailPost_h #if !defined(vtk_m_internal_FunctionInterface_h) && !defined(VTKM_TEST_HEADER_BUILD) #error FunctionInterfaceDetailPre.h must be included from FunctionInterface.h #endif #include #if VTKM_MAX_FUNCTION_PARAMETERS != 20 #error Mismatch of maximum parameters between FunctionInterfaceDatailPre.h.in and FunctionInterfaceDetailPost.h.in #endif namespace vtkm { namespace internal { namespace detail { //============================================================================ // clang-format off template struct FunctionInterfaceStaticTransformType { using type = R( ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; template struct FunctionInterfaceStaticTransformType { using type = R( typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type, typename Transform::template ReturnType::type ); }; // clang-format on } // namespace detail //============================================================================ // clang-format off /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( ) { detail::ParameterContainer container = { }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1 ) { detail::ParameterContainer container = { p1 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2 ) { detail::ParameterContainer container = { p1, p2 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3 ) { detail::ParameterContainer container = { p1, p2, p3 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4 ) { detail::ParameterContainer container = { p1, p2, p3, p4 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15, const P16& p16 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15, const P16& p16, const P17& p17 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15, const P16& p16, const P17& p17, const P18& p18 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15, const P16& p16, const P17& p17, const P18& p18, const P19& p19 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19 }; return FunctionInterface{container}; } /// \brief Create a \c FunctionInterface /// /// \c make_FunctionInterface is a function that takes a variable number of /// arguments and returns a \c FunctionInterface object containing these /// objects. Since the return type for the function signature is not specified, /// you must always specify it as a template parameter /// /// \code{.cpp} /// vtkm::internal::FunctionInterface functionInterface = /// vtkm::internal::make_FunctionInterface(1, 2.5, 'a'); /// \endcode /// VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT FunctionInterface make_FunctionInterface( const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6, const P7& p7, const P8& p8, const P9& p9, const P10& p10, const P11& p11, const P12& p12, const P13& p13, const P14& p14, const P15& p15, const P16& p16, const P17& p17, const P18& p18, const P19& p19, const P20& p20 ) { detail::ParameterContainer container = { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20 }; return FunctionInterface{container}; } // clang-format off } } // namespace vtkm::internal #endif //vtk_m_internal_FunctionInterfaceDetailPost_h