O başlığı hatırlıyorum hocam ama nedense forumda aramak yerine kodu yapıştırmak kolay geldi...:)
Bu arada yeni bir çözüm ürettim, nedense int'den küçük türlerde doğru çalışıyor. Aslında hepsinde doğru çalışması gerekiyor ama çözemedim. Küçük bir yerde hata veya püf noktası olabilir. O yüzden izlenimlerinize sunuyorum:
import std.stdio;
import std.conv;
alias short enumTürü;
enum Günler: enumTürü {
Pazartesi = 2,
Salı = 3,
Çarşamba = 5,
Perşembe = 7,
Cuma = enumTürü.max - 2,
Cumartesi,
Pazar
}
auto enumMembers(T)(){
string[] result;
T x = T.min;
do {
result ~= to!string(x);
foreach(char c; result[$-1]) {
if(c < 0x2F) { // içinde parantez varsa görmezlikten gel
result = result[0..$-1];
break;
}
}
if(x != T.max) x++; else break;
} while(x <= T.max);
return result;
}
void main() {
writefln("%-(%s, %)", enumMembers!Günler);
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]