Предлагаю в этой ветке собрать все что по вашему мнению нужно добавить в стандарт. После чего послать запрос комитетчикам.
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 >>