On Tuesday, 29 November 2016 at 15:56:23 UTC, Jerry wrote:
On Monday, 28 November 2016 at 11:26:41 UTC, dm wrote:
```
abstract class MyClass(T)
{
public:
@property const(T) value(){return _value;}
@property void value(T val){_value = val;}
...
private:
T _value;
...
}
To avoid having to use the Object class directly you can make
an base class of the class template.
Like:
```
abstract class MyClass {}
abstract class MyClassImpl(T)
{
public:
@property const(T) value(){return _value;}
@property void value(T val){_value = val;}
...
private:
T _value;
...
}
MyClassInt and float inherits from MyClassImpl
```
And use it like:
```
void main() {
MyClass[] objs;
objs ~= new MyClassFloat();
objs ~= new MyClassInt();
}
```
I would rather go with an interface than a base class.