C++ дополнения
От: WolfHound  
Дата: 08.06.03 20:01
Оценка:
Предлагаю в этой ветке собрать все что по вашему мнению нужно добавить в стандарт. После чего послать запрос комитетчикам.

1)template typedef
2)Атрибут на функцию обязательна к определению во ВСЕХ потомках
3)Статические конструкторы/деструкторы. Должны быть созданы для ВСЕХ полных инстационирований шаблона.
4)Анонимные методы те
Создается функтор который имеет доступ к локальным переменным
    int sum=0;
    for_each(v.begin(), v.end(), 
        void(int i)
        {
            sum+=i;    
        }
    );

Тоже но еще может достучатся до не статических челенов класса
    int sum=0;
    for_each(v.begin(), v.end(), 
        void this(int i)
        {
            sum+=SomeMemberFunction(i);    
        }
    );

5)Добавить в STL сигнатуры типа
template<class T, class F>
F for_each(T& t, F f)
{
    return for_each(t.begin(), t.end(), f);
}

6)Добавить boost::shared_ptr и компанию
7)Добавить boost\lambda
8)typeof
9)Интерфейсы те
//Не могут быть определены конструкторы/деструктор
//но пустые protected виртуальный деструктор, конструктор по умолчанию, 
//копирующий конструктор, копирующие присваивание создюется автоматически
//
//Может быть наследован только от интерфейса(ов)
//
//Не может содержать данные
//
//По умолчанию pablic
interface ISome1
{
    virtual void Some1()=0;
    virtual void Some2()=0;
};
interface ISome2
    :ISome1
{
    virtual void Some3()=0;
    virtual void Some4()=0;
};
struct CSome1:ISome1
{
};
struct CSome2:ISome2
{
};
struct CSome:CSome1,CSome2
{
    virtual void Some1(){}
    virtual void Some2(){}
    virtual void Some3(){}
    virtual void Some4(){}
};
int main()
{
    ISome1* some=new CSome();//Ошибки не будет ибо будет выбран ЛЮБОЙ ISome1 тк они безразличны
}


Что забыл?
... << RSDN@Home 1.0 beta 6a >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.