Какие-то странные проблемы волнуют Страуструпа :/
vector < vector< int>> - проблема навсегда исчезает после первого же нахождения решения.
Хорошие компиляторы даже выдают сообщение вроде
test.cpp:4: error: `>>' should be `> >' within a nested template argument list
или менее информативное
test.cpp(4) : error C2947: expecting '>' to terminate template-argument-list, found '>>'
Начинающего программиста ждет гигантское количество таких pitfalls. Непонятно, почему Струструп актентировал внимание именно на этом.
Концепты. Абсолютно бесмысленная штука.
Какая разница, где компилятор укажет на ошибку, прямо в боевом коде или в концепте? А как он будет проверять incomplete-типы?
А чем плох if (0) { проверить, что можно скопировать/вызвать метод ++/разыменовать } для ранней диагностики?
Инициализаторы.
std::vector v = { 1, 2, 3, 4 };
Такое я встречал только в тестовом коде.
В реальных программах это встречается сверхредко - инициализация захардкоденными
значениями [b]динамического[/b] контейнера. На то они и динамические. Если что-то меняет свой размер,
то вряд ли в нём в начале работы 4-ре элемента.
А для тестов можно использовать и
v << 1 << 2 << 3 << 4;
и int i[4] = { 1, 2, 3, 4 }; std::vector< int> v(i, i+4);
Понятно, что будут решать и другие, более насущные проблемы, непонятно почему доктор так заостряет внимание именно на
этих мелочах в работах посвященных c++0x.