Trong một cuộc phỏng vấn xin việc, tôi được yêu cầu viết một metafunction xác định xem loại có phải là một con trỏ hay không. Đây là những gì tôi trình bày:Làm thế nào tôi có thể thực hiện xác nhận thời gian biên dịch mà không có C++ 11
template <typename T>
struct is_pointer
{ static const bool value = false; }
template <typename T>
struct is_pointer<T *>
{ static const bool value = true; }
Sau đó, tôi được yêu cầu viết một meta-khẳng định, rằng sẽ thất bại trong thời gian biên dịch nếu chức năng is_pointer
tôi không phải là làm đúng.
Khi tôi sử dụng static_assert
, anh ấy đã nói rõ ràng với tôi rằng Tôi chỉ có thể sử dụng tiêu chuẩn C++ 98. Làm thế nào tôi có thể đạt được điều này?
Tôi nghĩ rằng vào thời điểm này bạn đã thông qua "kiểm tra để xem liệu bạn có thực sự biết ngôn ngữ "một phần của cuộc phỏng vấn hay không, trừ khi công ty tạo ra các trình biên dịch C++ hoặc một cái gì đó. –