Tôi đang tìm kiếm một API có thể được sử dụng để đổ hầu hết các cấu trúc dữ liệu, có một trong c/C++ không?Có cái gì như var_dump của PHP trong c/c + +?
Trả lời
tăng có thư viện tuần tự hóa mà bạn có thể sử dụng rõ ràng để làm cho cấu trúc dữ liệu của bạn có thể bán được.
Nếu bạn muốn điều đó xảy ra tự động hơn, các tùy chọn của bạn bị ảm đạm. Một chương trình C++ có thể kiểm tra các biểu tượng gỡ lỗi của chính nó, hoặc biên dịch một số mã bổ sung - có thể được tạo tự động với tham chiếu đến đầu ra GCC-XML hoặc sử dụng một công cụ như OpenC++ để tự động tạo một số siêu dữ liệu.
Tôi đang tìm kiếm một API có thể được sử dụng để đổ hầu hết các cấu trúc dữ liệu, có một trong c/C++ không?
Câu trả lời ngắn gọn: Không, không có.
Câu trả lời dài hơn: C++ không có phản ánh. Đó là, không có cách nào để phân tích các cấu trúc dữ liệu không xác định khi chạy. Bạn sẽ phải tự viết các thói quen kết xuất cho bất kỳ cấu trúc dữ liệu nào bạn muốn đổ, xây dựng trên những gì có sẵn cho các thành viên dữ liệu của nó.
Tuy nhiên, lưu ý rằng C++ có rất nhiều công cụ để giúp bạn dễ dàng hơn. Ví dụ, cho một đơn giản generic dump()
mẫu:
template< typename T >
inline void dump(std::ostream& os, const T& obj) {os << obj;}
các yếu tố của bất kỳ chuỗi có thể được đổ sử dụng chức năng đơn giản này:
template< typename OutIt >
void dump(std::ostream& os, OutIt begin, OutIt end)
{
if(begin != end)
os << *begin++;
while(begin != end) {
os << ", ";
dump(*begin++);
}
}
Cần một chuyên môn cho 'std :: pair <>' để kết xuất tập hợp <> s và map <> s. Một số biến chứng, ví dụ: các chuỗi thoát, độ chính xác của dấu phẩy động .... –
@Tony: Vâng, đối với các bản đồ và các bản đồ đa giác (không phải cho các bộ, mặc dù) thực sự là một quá tải cần thiết. (Không có chuyên môn hóa, BTW, vì đây sẽ là một chuyên môn _partial_, mà chúng tôi không có cho các mẫu chức năng, vì có quá tải ...) Và, vâng, đối với một số loại khác, bạn có thể muốn thêm quá tải. Tuy nhiên, tôi cố tình để lại một ví dụ đơn giản. Nó đã được bạn khá xa như nó được. – sbi
- 1. là có cái gì đó giống như isset của php trong javascript/jQuery?
- 2. CC? = Trong Makefile có nghĩa là gì?
- 3. Java tương đương với PHP var_dump là gì?
- 4. Gọi/cc là gì?
- 5. Có một cái gì đó trong PHP tương tự như Option Explicit trong VB
- 6. Có cái gì đó giống như Python 'với' trong C#?
- 7. Trong makefiles CC và LD là gì?
- 8. Các mã như đầu ra CC, LD và CC [M] khi biên dịch hạt nhân Linux là gì?
- 9. Có một Sandbox PHP, một cái gì đó như JSFiddle là để JS?
- 10. Liệu Perl có một cái gì đó giống như Java/PHP Docs?
- 11. Một cái gì đó giống như chức năng đại biểu gọi lại trong php
- 12. Có cái gì đó giống như `last` cho` map`?
- 13. Có cái gì đó giống như WMI cho Linux?
- 14. OpenCL của AMD có cung cấp cái gì đó tương tự như GPUDirect của CUDA không?
- 15. một cái gì đó tương tự như python-DJANGO trong PHP?
- 16. Có cái gì đó giống như Incanter cho Haskell?
- 17. Xdebug có làm đẹp var_dump không?
- 18. MATLAB Có một cái gì đó giống như danh sách hiểu như nó là trong python?
- 19. Cái gì đó tương tự như split()?
- 20. PCRE trong Haskell - cái gì, ở đâu, như thế nào?
- 21. jQuery có một đối tượng JSON/javascript với chức năng in HTML khá giống với var_dump của PHP không?
- 22. Cái gì 'này' trong attachEvent của IEE
- 23. Ruby có một cái gì đó giống như sự hiểu biết danh sách của Python?
- 24. php var_dump ($ object) hoặc print_r ($ object) vào tệp nhật ký
- 25. Cái gì? trong XML Android có nghĩa
- 26. Cú pháp JavaScript này là gì: {Ci, CC}?
- 27. Bất cứ ai cũng biết một cái gì đó giống như RSPec cho PHP?
- 28. Tại sao var_dump một Doctrine Objects giết Apache của tôi?
- 29. Tìm kiếm một cái gì đó giống như của JUnit @Before/@After trong MUnit
- 30. Có cái gì đó giống như máy phát điện Python trong Ruby?
Tôi không nghĩ như vậy. C/C++ không được thiết kế cho loại công cụ này. Tốt nhất bạn chỉ cần nhìn nó lên trên internet những gì các kiểu dữ liệu khác nhau có thể làm, vv. –