我正在尋找一個可以用來轉儲大多數數據結構的API,在c/C++中有嗎?在c/C++中是否有類似PHP的var_dump?
回答
boost有一個序列化庫,您可以明確地使用它來使您的數據結構可以丟棄。
如果你想讓它自動發生,你的選擇是黯淡的。一個C++程序可以檢查自己的調試符號,或者編譯一些額外的代碼 - 可能是參考GCC-XML輸出自動生成的,或者使用像OpenC++這樣的工具來自動生成一些元數據。
我正在尋找一種可用於轉儲大多數數據結構的API,是否有一個在c/C++中?
簡答:不,沒有。
較長的答案:C++沒有反射。也就是說,在運行時無法分析未知的數據結構。您將必須自己爲任何要轉儲的數據結構編寫轉儲例程,並建立在其數據成員可用的基礎上。
但是,請注意,C++有很多工具可以使它更容易。例如,給定一個簡單的通用模板dump()
:
template< typename OutIt >
void dump(std::ostream& os, OutIt begin, OutIt end)
{
if(begin != end)
os << *begin++;
while(begin != end) {
os << ", ";
dump(*begin++);
}
}
需要專門爲'std :: pair <>'轉儲set <> s和map <> s。一些併發症轉義字符串,浮點精度.... – 2010-10-05 10:39:15
@Tony:是的,對於地圖和多圖(不適用於集合),確實存在必要的過載。 (沒有專業化,順便說一句,因爲這必須是一個_partial_專業化,我們沒有這個功能模板,因爲它存在重載......),對於其他一些類型,你可能想增加更多的重載。但是,我故意留下這個簡單的例子。它已經讓你感覺很好。 – sbi 2010-10-05 11:30:42
- 1. C#是否有類似PHP的mb_convert_encoding()?
- 2. 是否有與Oracle Reports類似的PHP?
- 3. 在navision開發中是否有php的var_dump相當於?
- 4. slf4j中是否有類似org.apache.log4j.EnhancedPatternLayout的類?
- 5. 在php中是否有類似於bash set±x的指令?
- 6. 在VB.Net中是否有類似PHP mysql命令的過程?
- 7. 在PHP 5.2中是否有類似於stristr()的函數?
- 8. 在JavaScript中是否有類似utf8-encode(php)的函數?
- 9. 在php中是否有類似NEGATIVE_INFINITY的東西?
- 10. Javascript中是否有任何類似於PHP中的__FILE__變量?
- 11. Chrome中是否有globalStorage的類似物?
- 12. Javascript中是否有類似Python的numpy.apply_along_axis?
- 13. asp.net中是否有類似java的servlet
- 14. mysql是否有類似autoupdate
- 15. ASP.NET中是否有類似於PHP的SimpleXML
- 16. PHP中是否有類似MongoDB的MongoDB ORM?
- 17. 授權頭是PHP的var_dump()
- 18. 是否有類似於Java中
- 19. Cocoa中是否有類似[aCalCalendar setType]?
- 20. Mapper中是否有bulkUpdate(類似bulkDelete_ !!)?
- 21. Java中是否有RedBeanPHP ORM類似物?
- 22. 是否有類似XML豆在JAVA
- 23. 在QT中是否有類似QListIterator的Python類?
- 24. 是否有類似Python的urllib2的庫?
- 25. 是否可以在PHP中實現類似數組的對象?
- 26. JavaScript中是否存在類似checkdate()的php函數?
- 27. PHP是否也有類似的JavaScript的可變參數
- 28. AS3是否有類似於PHP的strtr()的方法?
- 29. 是否存在類似(xs:x)
- 30. 是否有可能在php中使用echo會像var_dump一樣工作?
我不這麼認爲:
的任何序列可以用這個簡單的功能被傾倒的元素。 C/C++不是爲這種東西而設計的。最好你只是在互聯網上自己查看不同的數據類型可以做些什麼等等。 – 2010-10-05 07:54:45