diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2016-10-18 18:14:14 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-11-21 19:44:56 +0000 |
commit | bd614b91352b5a0a291f33a428c95d7bcbf34679 (patch) | |
tree | 1372effc15db45ec2fa8c9c248c9d66eacb99683 /codemaker/source | |
parent | 05d175a8efceccd684c9e3d7f428073f1b142346 (diff) |
Delete the "Any-to-Any" template specializations for LIBO_INTERNAL_ONLY
i.e., css::uno::Any function template specializations
Any::has<Any>() const
Any::get(Any const &) const
operator >>=(Any const &, Any &)
operator <<=(Any &, Any const &)
that don't make much sense (the first is always true, the rest can be replaced
with operator =, which additionally supports move semantics). For 3rd-party
compatibility, do this only for LIBO_INTERNAL_ONLY, however.
However, some generic template code did benefit from operator >>= working also
for Any, so make up for that with a new (LIBO_INTERNAL_ONLY, given that
operator >>= still covers if fine for !LIBO_INTERNAL_ONLY) fromAny,
complementing the existing toAny.
Change-Id: I8b1b5f803f0b909808159916366d53c948206a88
Reviewed-on: https://gerrit.libreoffice.org/30022
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'codemaker/source')
-rw-r--r-- | codemaker/source/cppumaker/cpputype.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx index e87fed09df3b..e3ce8170150b 100644 --- a/codemaker/source/cppumaker/cpputype.cxx +++ b/codemaker/source/cppumaker/cpputype.cxx @@ -3621,10 +3621,12 @@ void ServiceType::dumpHppFile( u2b(j.name), "param", codemaker::cpp::IdentifierTranslationMode::NonGlobal)); sal_Int32 rank; - if (m_typeMgr->getSort( - b2u(codemaker::UnoType::decompose( - u2b(j.type), &rank))) - == codemaker::UnoType::Sort::Char) + if (resolveOuterTypedefs(j.type) == "any") { + o << "= " << param; + } else if (m_typeMgr->getSort( + b2u(codemaker::UnoType::decompose( + u2b(j.type), &rank))) + == codemaker::UnoType::Sort::Char) { o << "= ::css::uno::Any(&" << param << ", ::cppu::UnoType< "; |