Trong một số mã C++, tôi sử dụng số nguyên để lưu trữ nhiều dữ liệu thay đổi. Để phân tích chương trình của tôi, tôi muốn ghi lại các thay đổi nhất định đối với một số biến, chẳng hạn như tần suất một giá trị nhất định được gán và tần suất chuyển nhượng thừa (giá trị mới giống như giá trị cũ.)C++ xuất phát từ kiểu gốc
Nếu loại là một lớp Foo, tôi chỉ lấy được một LoggingFoo mới và thêm dữ liệu ghi nhật ký của tôi vào (các) hàm thành viên mà tôi quan tâm và sau đó gọi hàm thành viên chính. Tôi phải cập nhật mã của mình để sử dụng loại mới, nhưng miễn là tôi ban đầu phù hợp với typedef, đó là thay đổi một dòng.
Vấn đề của tôi là biến tôi muốn thêm đăng nhập vào là int. Bạn không thể lấy được từ các loại được xây dựng trong C++ (có thể bạn?)
Câu hỏi của tôi là liệu có một cách thông minh để lấy được từ các loại cơ bản (int, float, double, etc).
Các giải pháp có thể định nghĩa một lớp mới mà hiệu quả là một int .. nó định nghĩa mỗi hoạt động một int có thể làm và chỉ áp dụng cho hoạt động đó cho một thành viên int dữ liệu cá nhân. Chiến lược này sẽ hoạt động, nhưng có lẽ những người khác đã tạo một lớp như vậy và tôi chỉ có thể sử dụng định nghĩa tệp tiêu đề "fakeint.h". Có một định nghĩa kiểu "trình bao lớp gốc proxy" như vậy đã có sẵn ở đâu đó trước khi tôi triển khai chúng không?
Tôi nhận ra rằng proxy int của tôi không thể được sử dụng hoán đổi cho nhau một cách đặc biệt vì các định nghĩa chức năng hiện tại đều mong đợi một int .. nhưng đối với ứng dụng của tôi, đây là tất cả trong vòng lặp bên trong. native + - *^= hoạt động, không được sử dụng làm đối số hàm hoặc bất kỳ thứ gì.
bạn nên xem xét các toán tử tăng cường: http://www.boost.org/doc/libs/1_39_0/libs/utility/operators.htm. Nó sẽ cho phép bạn tạo một lớp có tất cả các toán tử điển hình để làm cho nó hoạt động như một kiểu số nguyên gốc. –
@Evan .. cảm ơn, đó là một tài nguyên tốt đẹp nói chung! Overkill cho những gì tôi cần nhưng nếu tôi cần phải cuộn của riêng tôi nó muốn cắt giảm công việc dư thừa đáng kể. – SPWorley