W rozmowie kwalifikacyjnej poproszono mnie o napisanie metafunkcji , która określiła, czy typ był wskaźnikiem. To co przedstawiłem:Jak mogę tworzyć asercje czasu kompilacji bez 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; }
Potem został poproszony o napisanie meta-assert, że zawiedzie podczas kompilacji, jeśli mój is_pointer
funkcja nie jest postępuje słusznie.
Kiedy użyłem static_assert
, wyraźnie powiedział mi, że mogę używać tylko standardu C++ 98. Jak mogę to osiągnąć?
myślę w tym momencie zdałeś „Sprawdź aby sprawdzić, czy rzeczywiście znasz język "część wywiadu, chyba że firma tworzy kompilatory C++ lub coś takiego. –