Как работает функция на основе диапазона для простых массивов?

В C ++ 11 вы можете использовать на основе диапазона для , который действует как foreach для других языков. Он работает даже с простыми массивами C:

int numbers[] = { 1, 2, 3, 4, 5 };
for (int& n : numbers) {
    n *= 2;
}

Как он узнает, когда остановиться? Работает ли он только со статическими массивами, которые были объявлены в той же области видимости, в которой используется для ? Как бы вы использовали этот для с динамическими массивами?

75
задан Paul Manta 29 October 2011 в 14:08
поделиться