C++ 11 özelliklerini kullanarak ve tercihen önişlemci kullanmadan Xmacro deyiminin yerini almanın bir yolu var mı? Tuple şablonlarının kullanılabileceğini düşünüyordum, ama hala bunların nasıl çalıştığını düşünmeye çalışıyorum.X-makrolarını değiştirmek için bir şablon/constexpr/C++ 11 yolu var mı?
cevap
XMacros, geniş çeşitliliği için genel bir araçtır. Birçoğu (sayım listesi, dizge, vb. Oluşturmak gibi) her türlü şablonun yeteneklerinin çok ötesindedir.
Şablonlarla değiştirmenin bir yolunu bulabileceğiniz bazı durumlar olabilir. Ama kesinlikle hepsi değil. Bu tekniğin bir adı olduğu konusunda beni uyardığı için
Bunun böyle olmasını beklerdim. Şu anda kullanmakta olduğum "bazı durumlar" ve şablonlarla değiştirmek istiyorum enumları dizginlemek. – Naddiseo
@Naddiseo: Bu durumda, kesinlikle değil. Şablonların bir belirteci, bu belirtecin dize temsili haline getirme yeteneği yoktur; –
C++ 11, bazı daha güçlü derleme zamanı dizi işleme ve yansıtma yeteneklerini gerçekten kullanabilir. Std :: enum_name
+1. Bunu daha önce kodda görmüştüm ve kullandım. Ama bir şey olduğunu bilmiyordum. –