[cfe-dev] Status of explicit conversion operators and nullptr
Jonathan Sauer
jonathan.sauer at gmx.de
Wed Jul 20 09:19:56 PDT 2011
Hello,
according to <http://clang.llvm.org/cxx_status.html>, explicit conversion operators are currently
not really functional:
| No name mangling; ASTs don't contain calls to conversion operators
I just tried using them and to my delight they worked: Not only did the code compile (after I inserted
the missing explicit casts), the resulting application ran without a hitch. To whomever implemented it:
THANK YOU! :-)
The code I used them in was:
template <typename T, unsigned int FractBits>
class Fixed {
...
// Convert to a float
explicit inline operator float() const;
// Convert to any integer
template <typename U, typename std::enable_if<std::is_integral<U>::value, int>::type = 0>
explicit inline operator U() const;
};
I therefore think that the above status page should be updated at least to yellow ("many examples
work").
The same goes for nullptr support: I have been using it successfully for weeks now (almost) without
problems. Code generation most certainly isn't "broken". __has_feature(cxx_nullptr) also evaluates
to "1".
Are these assessments correct (and should I send a patch for the status page), or am I overlooking
something?
With many thanks in advance,
Jonathan
More information about the cfe-dev
mailing list