Возможно ли в "современном C ++" (C ++ 17 или выше) передать строковый литерал в качестве параметра в шаблон C ++?
Я понимаю, что вы могли бы сделать это с аргументом конструктора; Я просто подумал, что было бы удобнее иметь его в качестве аргумента шаблона, а не закапывать глубоко в файл cpp. Мне было любопытно, может быть, это была новая особенность современного C ++. Смотрите ниже псевдокод того, что я пытаюсь сделать:
Пример псевдокода:
// Header File /////////////////////////
template<constexpr string Name>
class ModuleBase {
public:
ModuleBase();
string name;
};
class xyz : ModuleBase<"xyz"> {
public:
xyz();
};
// Cpp File //////////////////////////
template<string_literal Name>
ModuleBase<Name>::ModuleBase() {
name = Name;
}
xyz::xyz() : ModuleBase() {
}