Questions about getCppuType

Stephan Bergmann sbergman at
Wed May 7 05:24:52 PDT 2014

On 05/05/2014 09:07 AM, sberg wrote:
> On 04/25/2014 11:06 PM, julien2412 [via Document Foundation Mail
> Archive] wrote:
>  > I've begun to replace some parts and had this when I've changed this:
>  > else if ( pType == ::getCppuType((const sal_uInt16*)0) )
>  > into this:
>  > else if ( pType == cppu::UnoType<const sal_uInt16>::get() )
> That's the problem with getCppuType, that sal_uInt16 (representing UNO
> UNSIGNED SHORT) and sal_Unicode (representing UNO CHAR) can be typedefs
> for one and the same type, so getCppuType arbitrarily has to decide for
> one of those.
> With cppu::UnoType, instead use cppu::UnoUnsignedShortType and
> cppu::UnoCharType as template arguments, respectively.

And for completeness:  Use cppu::UnoSequenceType<> instead of 
css::uno::Sequence<> when the (recursive) element type is one of those 
special UnoUnsignedShortType/UnoCharType.  (Cf. 
"Sequence<UnoUnsignedShortType> -> UnoSequenceType<UnoUnsignedShortType>.")

(And, finally, css::uno::Reference<> is redundant there, so


is shorthand for


and probably preferable.)


More information about the LibreOffice mailing list