Neargye/nameof
Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#1 Repository Của Tuần
#1 Repository Của Tuần
🆔 nameof: Lấy tên mọi thứ trong C++ mà không cần viết tay
Một macro không chạy thời gian biên dịch, không thêm thư viện, chỉ cần #include là dùng được ngay.
nameof là thư viện C++17 header-only của Neargye, cho phép lấy tên biến, hàm, macro, kiểu và enum chỉ bằng một macro duy nhất. Dự án giải quyết nhu cầu lấy tên ký hiệu trong thời gian biên dịch — thường cần reflection hoặc viết thủ công — mà không mượt hạn chế runtime hay phụ thuộc bên ngoài.
✨ Điểm nổi bật
- NAMEOF: Lấy tên biến, hàm, macro hoặc thành phần thành viên.
- NAMEOF_ENUM: Chuyển đổi giá trị enum sang chuỗi tại thời điểm chạy.</n- NAMEOF_ENUM_CONST: Lấy tên enum hằng tĩnh, nhanh hơn, không giới hạn enum_range.
- NAMEOF_ENUM_FLAG: Ghép tên các cờ enum dạng bitwise.
- NAMEOF_ENUM_OR: Trả về giá trị mặc định nếu enum nằm ngoài phạm vi.
- NAMEOF_TYPE_EXPR / NAMEOF_FULL_TYPE_EXPR / NAMEOF_SHORT_TYPE_EXPR: Lấy tên kiểu ngắn, đầy đủ hoặc có const-ref.
- NAMEOF_TYPE_RTTI: Lấy tên kiểu thực tế bằng RTTI.
- NAMEOF_MEMBER / NAMEOF_POINTER: Lấy tên thành viên hoặc biến toàn cục qua con trỏ.
- Header-only: Chỉ cần thêm một file
nameof.hpp, hỗ trợ vcpkg, Conan và CPM.
💡 Vì sao đáng chú ý
nameof hoạt động hoàn toàn trong thời gian biên dịch nhờ khả năng đọc chuỗi __PRETTY_FUNCTION__ của trình biên dịch, tránh chi phí runtime. Phù hợp cho hệ thống serialization, logging, debug và công cụ phản hồi lỗi — nơi cần tên ký hiệu thực sự mà không muốn bật reflection đầy đủ.
#Cplusplus #Cpp17 #EnumToString #HeaderOnly #Serialization #TiniX
Similar Projects
Discover other similar projects and AI models.
Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
BS::thread_pool: a fast, lightweight, modern, and easy-to-use C++17 / C++20 / C++23 thread pool library
📚 Modern C++ Tutorial: C++11 to C++26 On the Fly | https://changkun.de/modern-cpp/
Luanti (formerly Minetest) is an open source voxel game-creation platform with easy modding and game creation
C++ Insights - See your source code with the eyes of a compiler
Extremely fast, in memory, serialization, reflection, and RPC library for C++. JSON, BEVE, BSON, CBOR, CSV, JSONB, MessagePack, TOML, YAML, EETF
Cista is a simple, high-performance, zero-copy C++ serialization & reflection library.