-
Key: CPP11-114
-
Legacy Issue Number: 3078
-
Status: closed
-
Source: Floorboard Software ( Jonathan Biggar)
-
Summary:
1. The resolution that we seemed to be converging on for issue 674
allows programmers to inherit servant implementations like this:// IDL
interface A {
};interface B : A {
};// C++
class MyA : public virtual POA_A {
};class MyB : public virtual POA_B, public virtual MyA {
};However, this paradigm breaks when using abstract interfaces:
// IDL
abstract interface A {
};interface B : A {
};since the spec does not require a POA skeleton be generated for A.
I think we should change the spec to state that POA skeletons for
abstract interfaces are generated, but that these skeletons do not
inherit from ServantBase, and do not contain a _this() member function.
This will allow inheritence of implementations, even for abstract
interfaces.I considered just having POA_B just inherit directly from the abstract
class A, but that would allow POA_B skeletons to be widened implicitly
to an abstract interface pointer (for implementations which define A_ptr
as A *), and that seems to be too trouble prone. If someone can think
of a way to do this and prevent implicit widening, then this would be
better, since it would even allow sharing of implementation between a
servant and a valutype that both inherit from the same abstract
interface. -
Reported: CPP 1.0 — Sat, 4 Dec 1999 05:00 GMT
-
Disposition: Resolved — CPP 1.1
-
Disposition Summary:
resolved/closed
-
Updated: Fri, 6 Mar 2015 20:58 GMT