New keyword proposal to allow inheritance at compile-time. Ex:

template <typename T>

struct container

{

    static_virtual T * begin() {...}

    static_virtual T * end() {...}

    static_virtual T * rbegin() {...}

    static_virtual T * rend() {...}

};

template <typename T>

struct list : container<T>

{

    static_virtual T * begin() {...}

    static_virtual T * end() {...}

    static_virtual T * rbegin() {...}

    static_virtual T * rend() {...}

};

template <typename T>

ostream & ostream(ostream & out, container<T> const & c)

{

    for (auto i = c.begin(); i != c.end(); ++ i)

        out << * i << endl;

    return out;

}

int main()

{

    list<int> l;

    l.push_back(1);

    l.push_back(2);

    l.push_back(3);

    cout << l << endl;

}


Regards,

--

Phil Bouchard
Founder
C.: (819) 328-4743

Fornux Logo