⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functorold.h

📁 loki库的源代码。loki库是以模板技术和面向对象技术为基础的c++类库。
💻 H
📖 第 1 页 / 共 5 页
字号:
   template <>
   struct FunctorImplHelper<8>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 9 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<9>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 10 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<10>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9, Parm10) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 11 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<11>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;
           typedef typename TL::TypeAt<TList, 10>::Result P11;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           typedef typename TypeTraits<P11>::ParameterType Parm11;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9, Parm10, Parm11) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 12 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<12>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;
           typedef typename TL::TypeAt<TList, 10>::Result P11;
           typedef typename TL::TypeAt<TList, 11>::Result P12;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           typedef typename TypeTraits<P11>::ParameterType Parm11;
           typedef typename TypeTraits<P12>::ParameterType Parm12;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9, Parm10, Parm11, Parm12) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 13 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<13>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;
           typedef typename TL::TypeAt<TList, 10>::Result P11;
           typedef typename TL::TypeAt<TList, 11>::Result P12;
           typedef typename TL::TypeAt<TList, 12>::Result P13;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           typedef typename TypeTraits<P11>::ParameterType Parm11;
           typedef typename TypeTraits<P12>::ParameterType Parm12;
           typedef typename TypeTraits<P13>::ParameterType Parm13;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9, Parm10, Parm11, Parm12, Parm13) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 14 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<14>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;
           typedef typename TL::TypeAt<TList, 10>::Result P11;
           typedef typename TL::TypeAt<TList, 11>::Result P12;
           typedef typename TL::TypeAt<TList, 12>::Result P13;
           typedef typename TL::TypeAt<TList, 13>::Result P14;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           typedef typename TypeTraits<P11>::ParameterType Parm11;
           typedef typename TypeTraits<P12>::ParameterType Parm12;
           typedef typename TypeTraits<P13>::ParameterType Parm13;
           typedef typename TypeTraits<P14>::ParameterType Parm14;
           virtual NewRType operator()(Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7, Parm8, Parm9, Parm10, Parm11, Parm12, Parm13, Parm14) = 0;
       };
   };
////////////////////////////////////////////////////////////////////////////////
// class template FunctorImplHelper
// Specialization for 15 parameters
////////////////////////////////////////////////////////////////////////////////
   template <>
   struct FunctorImplHelper<15>
   {
       template <typename R, class TList, class ThreadingModel>
       class In : public Private::FunctorImplBase<R, ThreadingModel>
       {
           typedef typename TL::TypeAt<TList, 0>::Result P1;
           typedef typename TL::TypeAt<TList, 1>::Result P2;
           typedef typename TL::TypeAt<TList, 2>::Result P3;
           typedef typename TL::TypeAt<TList, 3>::Result P4;
           typedef typename TL::TypeAt<TList, 4>::Result P5;
           typedef typename TL::TypeAt<TList, 5>::Result P6;
           typedef typename TL::TypeAt<TList, 6>::Result P7;
           typedef typename TL::TypeAt<TList, 7>::Result P8;
           typedef typename TL::TypeAt<TList, 8>::Result P9;
           typedef typename TL::TypeAt<TList, 9>::Result P10;
           typedef typename TL::TypeAt<TList, 10>::Result P11;
           typedef typename TL::TypeAt<TList, 11>::Result P12;
           typedef typename TL::TypeAt<TList, 12>::Result P13;
           typedef typename TL::TypeAt<TList, 13>::Result P14;
           typedef typename TL::TypeAt<TList, 14>::Result P15;

       public:
           typedef R ResultType;
		   typedef typename Select
			<
				IsVoid<R>::value != 0,
				VoidAsType,
				R
			>::Result NewRType;
           typedef typename TypeTraits<P1>::ParameterType Parm1;
           typedef typename TypeTraits<P2>::ParameterType Parm2;
           typedef typename TypeTraits<P3>::ParameterType Parm3;
           typedef typename TypeTraits<P4>::ParameterType Parm4;
           typedef typename TypeTraits<P5>::ParameterType Parm5;
           typedef typename TypeTraits<P6>::ParameterType Parm6;
           typedef typename TypeTraits<P7>::ParameterType Parm7;
           typedef typename TypeTraits<P8>::ParameterType Parm8;
           typedef typename TypeTraits<P9>::ParameterType Parm9;
           typedef typename TypeTraits<P10>::ParameterType Parm10;
           typedef typename TypeTraits<P11>::ParameterType Parm11;
           typedef typename TypeTraits<P12>::ParameterType Parm12;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -