Пример для продолжения:
number = 0
for number in range(10):
number = number + 1
if number == 5:
continue # continue here
print('Number is ' + str(number))
print('Out of loop')
Выход:
Number is 1
Number is 2
Number is 3
Number is 4
Number is 6 # Note: 5 is skipped!!
Number is 7
Number is 8
Number is 9
Number is 10
Out of loop
Причина, по которой следующие две строки терпят неудачу, заключается в том, что нет определения в ContainerHandler
, которое сделало бы успешной реализацию шаблона с этими аргументами шаблона.
ContainerHandler<int> handler1; //compile error
ContainerHandler<int, int> handler2; //compile error
Если вы предоставите определение для шаблона, например, как это:
template<typename T , typename = int>
struct ContainerHandler {};
Компиляция будет успешной. См. демо здесь .
РЕДАКТИРОВАТЬ:
Нет. Я ожидаю получить ошибку компиляции при вызове функции шаблона "container_handler ();" (в первой части кодов).
blockquote>Параметр
int_t
вcontainer_handler
имеет значение по умолчанию, поэтому он компилируетсяcontainer_handler<int>();
. Отсутствие значения по умолчанию вызовет сбой компиляции.
См. демо здесь .