Có cách nào để lấy tên hàm hiện tại trong C++ không? Tôi muốn theo dõi một số lệnh gọi hàm. Có điều gì đó giống như __FILE__
hoặc __LINE__
?Tên hàm hiện tại của C++ dưới dạng chuỗi
Cảm ơn bạn!
Có cách nào để lấy tên hàm hiện tại trong C++ không? Tôi muốn theo dõi một số lệnh gọi hàm. Có điều gì đó giống như __FILE__
hoặc __LINE__
?Tên hàm hiện tại của C++ dưới dạng chuỗi
Cảm ơn bạn!
Sử dụng
__FUNCTION__
//or
__PRETTY_FUNCTION__
Hoặc nếu bạn muốn trở thành phù hợp với be sớm-to-(sic) C++ 0x tiêu chuẩn, sử dụng __func__
, nếu trình biên dịch của bạn hỗ trợ nó (GCC làm), mà sẽ di động.
Hoặc, bạn muốn tương thích với tiêu chuẩn _current_: '#ifdef MYFN',' #undef MYFN', '# endif',' #define tên MYFN của hàm số' trước mỗi hàm bạn viết :-) – paxdiablo
Cảm ơn, nó hoạt động :) Nó rất hữu ích cho các hàm render mà bạn không thể gỡ lỗi tốt đẹp với các điểm ngắt – Felics
Macro này có tương thích với các trình biên dịch khác với GCC không? – Sampath
@Sampath, vì nó không phải là tiêu chuẩn không có bảo đảm cho điều đó, nhưng nó được liệt kê ví dụ trong tài liệu msdn cho trình biên dịch của Microsoft. Vì vậy, tôi giả sử nó được hỗ trợ trong hầu hết các trình biên dịch. Tuy nhiên, việc sử dụng __func__ có thể tốt hơn vì macro này được xác định theo chuẩn và phải được hỗ trợ toàn cầu. – Vladimir