[libcxx-commits] [PATCH] D92250: [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI.

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Nov 27 15:31:27 PST 2020


Quuxplusone created this revision.
Quuxplusone added reviewers: ldionne, zoecarver.
Quuxplusone added a project: libc++.
Herald added subscribers: libcxx-commits, jfb.
Herald added a reviewer: libc++.
Quuxplusone requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a subscriber: sstefan1.

I used a lot of `git grep` to find places where `std::` was being used outside of comments and assert-messages. There were three outcomes:

      

- Qualified function calls, e.g. `std::move` becomes `_VSTD::move`. This is the most common case.

- Typenames that don't need qualification, e.g. `std::allocator` becomes `allocator`. Leaving these as `_VSTD::allocator` would also be fine, but I decided that removing the qualification is more consistent with existing practice.

- Names that specifically need un-versioned `std::` qualification, or that I wasn't sure about. For example, I didn't touch any code in <atomic>, <math.h>, <new>, or any ext/ or experimental/ headers; and I didn't touch any instances of `std::type_info`.

In some deduction guides, we were accidentally using `class Alloc = typename std::allocator<T>`, despite `std::allocator<T>`'s type-ness not being template-dependent. Because `std::allocator` is a qualified name, this did parse as we intended; but what we meant was simply `class Alloc = allocator<T>`.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92250

Files:
  libcxx/include/__debug
  libcxx/include/__hash_table
  libcxx/include/__mutex_base
  libcxx/include/__split_buffer
  libcxx/include/__string
  libcxx/include/__tree
  libcxx/include/algorithm
  libcxx/include/array
  libcxx/include/barrier
  libcxx/include/bit
  libcxx/include/bitset
  libcxx/include/cmath
  libcxx/include/compare
  libcxx/include/complex
  libcxx/include/deque
  libcxx/include/filesystem
  libcxx/include/forward_list
  libcxx/include/functional
  libcxx/include/future
  libcxx/include/iomanip
  libcxx/include/iterator
  libcxx/include/list
  libcxx/include/memory
  libcxx/include/numbers
  libcxx/include/numeric
  libcxx/include/random
  libcxx/include/regex
  libcxx/include/string_view
  libcxx/include/type_traits
  libcxx/include/typeinfo
  libcxx/include/unordered_map
  libcxx/include/utility
  libcxx/include/variant
  libcxx/include/vector

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92250.308117.patch
Type: text/x-patch
Size: 46866 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201127/5480310e/attachment-0001.bin>


More information about the libcxx-commits mailing list