В более общем смысле отсутствия необходимости явно устанавливать переменные в каждом представлении, это звучит так, как будто вы хотите посмотреть на написание собственного контекстного процессора .
Из документов:
У контекстного процессора очень простой интерфейс: это просто функция Python, которая принимает один аргумент, объект HttpRequest и возвращает словарь, который добавляется в контекст шаблона. , Каждый контекстный процессор должен возвращать словарь.
NULL
не является встроенной константой в языках C или C ++. Фактически, в C ++ он более или менее устарел, просто используйте вместо него простой литерал 0
, компилятор будет делать правильные вещи в зависимости от контекста.
В более новых C ++ (C ++ 11 и выше ), используйте nullptr
(как указано в комментарии, спасибо).
В противном случае добавьте
#include < stddef.h >
, чтобы получить NULL
определение.
Использовать NULL. В любом случае это просто # определено как 0, и очень полезно семантически отличать его от целого числа 0.
Есть проблемы с использованием 0 (и, следовательно, NULL). Например:
void f(int);
void f(void*);
f(0); // Ambiguous. Calls f(int).
Следующая версия C ++ (C ++ 0x) включает nullptr
, чтобы исправить это.
f(nullptr); // Calls f(void*).
NULL
не является встроенной частью основного языка C ++, но является частью стандартной библиотеки. Вам необходимо включить один из стандартных файлов заголовков, которые включают его определение. #include
или #include
должно быть достаточно.
Определение NULL
гарантированно будет доступно, если вы включите cstddef
или stddef.h
. Это не гарантируется, но вы, скорее всего, получите его определение, если вместо этого включите многие другие стандартные заголовки.
Не используйте NULL
, C ++ позволяет использовать unadorned 0
вместо:
previous = 0;
next = 0;
И, как и в C ++ 11, обычно не следует использовать NULL
или 0
, поскольку он предоставляет вам nullptr
типа std :: nullptr_t
,
Включены ли вы в этот файл "stdlib.h" или "cstdlib"? NULL определен в stdlib.h / cstdlib
#include <stdlib.h>
или
#include <cstdlib> // This is preferrable for c++