В документе "C++09: A Glimpse into the Future" рассказывается о новшествах, представленных в проекте стандарта C++ 09, принятие которого ожидается в 2009 году.
на код void foo (int& oof) { } int main (int argn, char** argv) { foo (0); }
что нибудь говорит ?
void foo(int& oof) {} int main(...) { int v = 0; foo(v); }
Точно. Этого сильно не хватает. Чтобы сделать частичную специализацию только одного метода класса, приходится частично специализировать весь класс. Т.е. полностью копировать все его описание, что приводит к полной ж.пе при сопровождении.
Именно! А если еще разрешить локальным классам выступать хотя бы как параметры шаблонов не локальных классов... Т.е. например: template <class T> void myMethod() { struct MyStruct : public T{}; std::vector<MyStruct> vec; ... }