Шаблон, где конкретный объект используется для представления пустого указателя, а не истинного программного пустого указателя, для предотвращения различных сложностей, которые являются результатом использования фактического пустого указателя. При использовании это наклеивает реализацию, тяжелые вопросы - отмечают кодовый язык, в котором записана реализация.

Определенные протоколы и адаптеры могут взорваться при обработке фактического пустого указателя. Избегать этой проблемы и делать код более простым (обходятся без всего пустого указателя, проверяют сторону клиента), специальный "маркерный" объект, который представляет "пустой указатель", используется вместо пустого указателя.

Это было сначала зарегистрировано в Bobby Woolf на "Языках шаблона Проектирования программы 3".

Посмотрите Википедию для больше.