Возможно ли в "современном 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() {
}