Why clang bundled with 10-RELEASE doesn't define __has_feature(cxx_nullptr)?

Lev Serebryakov lev at FreeBSD.org
Fri Feb 7 13:50:07 UTC 2014


Hello, freebsd-stable.

 Why __has_feature(cxx_nulptr) doesn't work on system compiler? nullptr
itself works!

Here is sample program:

============================= test.cxx
#include <memory>

#ifndef __has_feature
#warning "Doesn't support for __has_feature at all"
#define __has_feature(x) 0
#endif

#if __has_feature(cxx_nullptr)
#warning "Has nullptr"
#else
#warning "Doesn't have nullptr"
#endif

int main(int argn, char *argv[]) {
  void *v = nullptr;
  return 0;
}
======================================

> c++ --version
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
Target: x86_64-unknown-freebsd10.0
Thread model: posix
> c++ test.cxx
test.cxx:11:2: warning: "Doesn't have nullptr" [-W#warnings]
#warning "Doesn't have nullptr"
 ^
1 warning generated.
>

-- 
// Black Lion AKA Lev Serebryakov <lev at FreeBSD.org>



More information about the freebsd-stable mailing list