T* next;
Node* next;
Node* Head = new Node(0, nullptr);
0
- неправильно, должно быть T{}
.но почему возникает ошибка?
new Node(data, Head)
не совпадают. code
. Dependency injection
. DEF_TYPENAME(float)
будет такой код:template<>
struct NameOf<float> {
static const char value[];
};
const char NameOf<type>::value[] = "float";
NameOf
всегда представляет из себя тип. У этого типа всегда будет статическая константа - строка с инициализацией от строкового литерала с именем типа из макроса.static constexpr const char* value = "float";
прямо внутри определения типа NameOf
. Это будет тривиальный статик, которому не требуется размещение, в котором лишь на время компиляции будет храниться указатель на уже размещенный строковой литерал. DEF_TYPE
- судя по стилю это макрос препроцессора. Во что этот макрос раскрывается - известно только тебе, т.к. только у тебя есть все изучаемые тобой тексты.
Я не знаком с таким оператором. :)
Поясни, о чем ты пишешь. Обязательно со ссылками на стандарт, вдруг я там что-то где-то не дочитал.
Может все таки загрузить? У тебя странная терминология.
Или же все таки в константу? Я что-то так и не понял.
Да, как-бы, как сделаешь. Оно, в общем смысле, уже известно на этот момент и может быть легко передано параметром компилятора.
Ты не знаешь как делать предопределения через компилятор? Или тебе хочется сделать правильную систему конфигурации? Имя проекта в конфиге хранить - очень плохо. Имя проекта - это константа для проекта, а конфиг всегда можно изменить.