C 11反思圖書館[封閉]
我正在c11中寫大專案.
我正在尋找一些好的c 11 / c反射圖書館,我發現了幾個不同的圖書館,但是大多數圖書館根本沒有更新過去幾年,或者他們的功能非常有限.
你能告訴我,如果有一個很好的圖書館c 1 / c反思? (我想要靜態和動態的反思,知道盡可能多的資訊,我可以關於方法,類等,可以動態新增和訪問方法等)
或者也許c 11提供了一些額外的功能,將有助於更好地設計反思庫,我應該自己寫? (我沒有找到有關它的資訊.)
C不是真正的反思最好的語言. C 0x並沒有真正改變.您可以使用型別特徵獲得對靜態反射的有限支援,甚至可以使用SFINAE靜態確定某個類是否具有特定的成員函式或成員變數.但那真的是這樣.
動態反射嚴重受限.您可以使用<typeinfo>在執行時獲取類的型別.設施,但這是關於它.
對於靜態反射,一般來說遍歷一個類並獲得每個成員變數/函式的能力是不可能的,沒有嚴重的妥協. Boost.Fusion可以通過提供允許將物件繫結到元組的容器的巨集來設法關閉它.實際上,std :: tuple或boost :: tuple類自然提供了編譯時反射 – 換句話說,你可以靜態迭代一個元組,並確定每個成員的型別.這給你一些近似於任意聚合型別的編譯時反射的東西.不幸的是,它並不方便,因為內建了任意類的本機反射支援.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/4233711/c11-reflection-library