nullptr может быть эмулирован в gcc?

Я видел это nullptr был реализован в Visual Studio 2010. Я люблю понятие и хочу начать использовать его как можно скорее; однако GCC еще не поддерживает его. Мой код должен работать на обоих (но не должен компилировать с другими компиляторами).

Существует ли способ "эмулировать" его? Что-то как:

#define nullptr NULL

(Который, очевидно, не работал бы хорошо вообще, это должно только показать то, что я имею в виду.)

47
задан Xeo 18 December 2011 в 21:25
поделиться

1 ответ

В официальном предложении есть обходной путь -

const                        // this is a const object...
class {
public:
  template<class T>          // convertible to any type
    operator T*() const      // of null non-member
    { return 0; }            // pointer...
  template<class C, class T> // or any type of null
    operator T C::*() const  // member pointer...
    { return 0; }
private:
  void operator&() const;    // whose address can't be taken
} nullptr = {};              // and whose name is nullptr
61
ответ дан 26 November 2019 в 19:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: