Я предполагаю, что вы используете D2, потому что я не знаю о D1.
В std.typecons
есть tuple
и Tuple
, которые позволяют вам использовать эти "невозвратные", то есть время компиляциикортежи, которые вы упоминаете для создания значений времени выполнения.
import std.typecons, std.stdio;
Tuple!(int, string, int[]) f() {
return tuple(5, "xyz", [3, 4, 5]);
}
void main() {
auto x = f();
writefln("%s is %s", x[1], x[0]);
//indices have to be copile-time constants
}
Используйте tuple(v1, v2)
в качестве значения и Tuple!(T1, T2)
в качестве его типа.
Если вы действительно хотите список вещей, которые вы не хотитезнать тип во время компиляции import std.variant
и затем Variant[]
как список этих вещей.