//: C05:FuncDef.cpp
#include <iostream>
using namespace std;
template<class T> T sum(T* b, T* e, T init = T()) {
while(b != e)
init += *b++;
return init;
}
int main() {
int a[] = { 1, 2, 3 };
cout << sum(a, a + sizeof a / sizeof a[0]) << endl; // 6
} ///:~
std::vector < std::vector <int> > pixels;
pixels.resize(h, std::vector <int> (w));
Я не ожидал, что компилятор старается подобрать такой шаблонный аргумент, чтобы в результате получилась специализация (реализация, дефиниция) функции, чьи параметры буду соответствовать переданным аргументам.