C
christopher diggins
Given a class which behaves like the following inteface (full implementation
of such a class left out due to its complexity, but it can be found at
http://www.heron-language.com/cpp-iop-example.html ):
interface IFuBar {
void Fu();
void Bar();
};
I have the following code which works:
struct FuBar {
void Fu() { /* ... */ };
void Bar() { /* ... */ };
};
template<typename T> struct FuBarDelegator {
Delegator(T x);
T x;
void Fu() { x.Fu(); };
void Bar() { x.Bar(); };
};
struct mystruct : public Delegator<IFuBar>
{
mystruct() : Delegator<IFuBar>(x); // passes a reference to x
FuBar x;
};
What I am unhappy with is that I have a redundancy of an extra reference to
X in the base class and what might be a useless constructor call. Is there a
way to pass mystruct::x to the Delegator as template parameter? Is there any
another way to avoid the extra pointer?
Thanks in advance!
of such a class left out due to its complexity, but it can be found at
http://www.heron-language.com/cpp-iop-example.html ):
interface IFuBar {
void Fu();
void Bar();
};
I have the following code which works:
struct FuBar {
void Fu() { /* ... */ };
void Bar() { /* ... */ };
};
template<typename T> struct FuBarDelegator {
Delegator(T x);
T x;
void Fu() { x.Fu(); };
void Bar() { x.Bar(); };
};
struct mystruct : public Delegator<IFuBar>
{
mystruct() : Delegator<IFuBar>(x); // passes a reference to x
FuBar x;
};
What I am unhappy with is that I have a redundancy of an extra reference to
X in the base class and what might be a useless constructor call. Is there a
way to pass mystruct::x to the Delegator as template parameter? Is there any
another way to avoid the extra pointer?
Thanks in advance!