module pind.samples.ja.templates_more.templates_more_1; template LargerOf(A, B) { static if (A.sizeof < B.sizeof) { alias LargerOf = B; } else { alias LargerOf = A; } } // ... /* この関数の戻り値の型は、その2つのテンプレートパラメーターの * いずれか大きい方だ: 型Aまたは型B。 */ auto calculate(A, B)(A a, B b) { LargerOf!(A, B) result; // ... return result; } void main() { auto f = calculate(1, 2L); static assert(is (typeof(f) == long)); }