İşlevin adını bir dize olarak almak için bir işlev değişkeni verildiğinde herhangi bir yol var mı? Mesela ben, eğer:Bir işlev değişkenini D'deki bir dizeye dönüştürmenin bir yolu var mı?
x(func) == "func";
:
void function(int) func;
ben alabilir, bazı fonksiyon x() var mı? Miksleri kullanarak bunun mümkün olabileceğini hissediyorum, ancak bunun nasıl uygulanacağı konusunda kafam karıştı.
Bunu adı bir dize depolamış olabilir ve mixin
'ed gerekli bir şey gibi: aklıma geliyor
edin:
Ayrıca bir şablon yapabiliriz. stringof, güvenilir bir özelliktir! Her durumda, orijinal soru beni rahatsız ediyor. Bir fonksiyon sembolünün ismini asla bilmemelisiniz; Güçlü bir kod kokusu var. Bunun yerine, ilk etapta işleve erişmek için kullandığınız şablon takma adının bilinen adını belirtmeniz yeterlidir. – FeepingCreature
@FeepingCreature: Yansıma veya bir tür insan tarafından okunabilir otomatik serileştirme için yapıyorsanız kod kokusu değildir. Yine de telkinlerin güvenilmez olduğunu kabul ediyorum. –
Hiç * iyi * (ya da kötü) bir fikir olduğunu söylemedim, sadece nasıl yaptığınızı söyledim ... – Mehrdad