diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-07-23 14:01:36 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-07-23 14:01:36 +0000 |
commit | 32e8f5b2fb7c1b834fcf8b80d9c9a8c1b044d34f (patch) | |
tree | 493f1553ce98efbe4cfef85e61f977c9931b4b1d /cppuhelper | |
parent | 6aa87e8882f188dad50a470dac5528f02634537d (diff) |
INTEGRATION: CWS sb20 (1.9.34); FILE MERGED
2004/07/14 08:58:40 sb 1.9.34.4: #i31281# [Agg]ImplInheritanceHelper1--12 now support BaseClass ctors with up to six arguments (more can be added if need be).
2004/07/12 10:56:47 sb 1.9.34.3: RESYNC: (1.9-1.10); FILE MERGED
2004/07/12 07:34:15 sb 1.9.34.2: #i29352# Reverted 1.9.34.1 to 1.9, to avoid merge conflicts; 1.9.34.1 will make its way to HEAD as the copied 1.9.26.1 once cws_src680_gcc340fixes01 is integrated.
2004/06/10 12:55:19 sb 1.9.34.1: #i29352# Added static_type to C++ classes generated for UNO interface types, so that cppuhelper/comp|implbaseN.hxx can be made Standard C++ conformant (as required by GCC 3.4.0).
Diffstat (limited to 'cppuhelper')
-rw-r--r-- | cppuhelper/inc/cppuhelper/implbase5.hxx | 69 |
1 files changed, 64 insertions, 5 deletions
diff --git a/cppuhelper/inc/cppuhelper/implbase5.hxx b/cppuhelper/inc/cppuhelper/implbase5.hxx index 15796e7b3fd8..762e5b537e07 100644 --- a/cppuhelper/inc/cppuhelper/implbase5.hxx +++ b/cppuhelper/inc/cppuhelper/implbase5.hxx @@ -2,9 +2,9 @@ * * $RCSfile: implbase5.hxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: hjs $ $Date: 2004-06-25 17:36:05 $ + * last change: $Author: rt $ $Date: 2004-07-23 15:01:36 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -197,8 +197,9 @@ namespace cppu @attention The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface - and ::com::sun::star::lang::XTypeProvider are implemented properly. The BaseClass - also has to have a default ctor. + and ::com::sun::star::lang::XTypeProvider are implemented properly. The + BaseClass must have at least one ctor that can be called with six or + fewer arguments, of which none is of non-const reference type. @derive Inherit from this class giving your additional interface(s) to be implemented as @@ -211,7 +212,35 @@ namespace cppu { /** @internal */ struct cd : public rtl::StaticAggregate< class_data, ImplClassData5 < Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, ImplInheritanceHelper5<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5> > > {}; + protected: + template< typename T1 > + explicit ImplInheritanceHelper5(T1 const & arg1): BaseClass(arg1) {} + template< typename T1, typename T2 > + ImplInheritanceHelper5(T1 const & arg1, T2 const & arg2): + BaseClass(arg1, arg2) {} + template< typename T1, typename T2, typename T3 > + ImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3): + BaseClass(arg1, arg2, arg3) {} + template< typename T1, typename T2, typename T3, typename T4 > + ImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4): + BaseClass(arg1, arg2, arg3, arg4) {} + template< + typename T1, typename T2, typename T3, typename T4, typename T5 > + ImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4, + T5 const & arg5): + BaseClass(arg1, arg2, arg3, arg4, arg5) {} + template< + typename T1, typename T2, typename T3, typename T4, typename T5, + typename T6 > + ImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4, + T5 const & arg5, T6 const & arg6): + BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {} public: + ImplInheritanceHelper5() {} virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) { ::com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) ); @@ -237,7 +266,9 @@ namespace cppu @attention The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface, ::com::sun::star::uno::XAggregation and ::com::sun::star::lang::XTypeProvider - are implemented properly. The BaseClass also has to have a default ctor. + are implemented properly. The BaseClass must have at least one ctor + that can be called with six or fewer arguments, of which none is of + non-const reference type. @derive Inherit from this class giving your additional interface(s) to be implemented as @@ -250,7 +281,35 @@ namespace cppu { /** @internal */ struct cd : public rtl::StaticAggregate< class_data, ImplClassData5 < Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, AggImplInheritanceHelper5<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5> > > {}; + protected: + template< typename T1 > + explicit AggImplInheritanceHelper5(T1 const & arg1): BaseClass(arg1) {} + template< typename T1, typename T2 > + AggImplInheritanceHelper5(T1 const & arg1, T2 const & arg2): + BaseClass(arg1, arg2) {} + template< typename T1, typename T2, typename T3 > + AggImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3): + BaseClass(arg1, arg2, arg3) {} + template< typename T1, typename T2, typename T3, typename T4 > + AggImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4): + BaseClass(arg1, arg2, arg3, arg4) {} + template< + typename T1, typename T2, typename T3, typename T4, typename T5 > + AggImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4, + T5 const & arg5): + BaseClass(arg1, arg2, arg3, arg4, arg5) {} + template< + typename T1, typename T2, typename T3, typename T4, typename T5, + typename T6 > + AggImplInheritanceHelper5( + T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4, + T5 const & arg5, T6 const & arg6): + BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {} public: + AggImplInheritanceHelper5() {} virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) { return BaseClass::queryInterface( rType ); } virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) |