У меня проблемы с разработкой приложения D. Может быть, мой подход совершенно неправильный, поэтому я пришел сюда, чтобы вы меня спасти. Любые предложения, включая полное переписывание, приветствуются.
У меня есть несколько шаблонных типов:
enum Type : byte { Message='!', Integer='@' }
struct Token (T) {
Type type;
T value;
}
alias Token!string MessageToken;
alias Token!long IntegerToken;
И мне нужно обрабатывать эти типы в целом:
AnyToken genToken(bool cond) {
if (cond)
return MessageToken(Type.Message, "nighly builds");
else
return IntegerToken(Type.Integer, -42);
}
AnyToken a = genToken(true);
AnyToken b = genToken(false);
Как мне добиться этого эффекта? Изменить: Также приветствуются альтернативы ООП.