d利用std.meta

import std.meta;
alias Numerics = AliasSeq!(byte, ubyte, short, ushort, int, uint, long, ulong, float, double, real, char, wchar, dchar);
enum convertsTo(T, U) = is(T : U);
alias ImplicitConversionTargets(T) = Filter!(ApplyLeft!(convertsTo, T), Numerics);

// 打印: (int, uint, long, ulong, float, double, real, dchar)
pragma(msg, ImplicitConversionTargets!int);
// 打印: (float, double, real)
pragma(msg, ImplicitConversionTargets!double);
posted @ 2022-01-19 19:24  zjh6  阅读(13)  评论(0)    收藏  举报  来源