Skip to content

STL: We should _STD qualify _Ugly function calls to avoid ADL #140

@StephanTLavavej

Description

@StephanTLavavej

See "ADL can interfere even with uglified names" by Arthur O'Dwyer.

We've survived 20+ years with unqualified _Ugly function calls, but perhaps we should consider changing this. It's possible that this could improve throughput.

List of headers to process, as mentioned in #140 (comment) below (cvt subtree intentionally omitted):

  • __msvc_all_public_headers.hpp
  • __msvc_chrono.hpp
  • __msvc_format_ucd_tables.hpp
  • __msvc_int128.hpp
  • __msvc_iter_core.hpp
  • __msvc_system_error_abi.hpp
  • __msvc_tzdb.hpp
  • __msvc_xlocinfo_types.hpp
  • algorithm
  • any
  • array
  • atomic
  • barrier
  • bit
  • bitset
  • cassert
  • ccomplex
  • cctype
  • cerrno
  • cfenv
  • cfloat
  • charconv
  • chrono
  • cinttypes
  • ciso646
  • climits
  • clocale
  • cmath
  • codecvt
  • compare
  • complex
  • concepts
  • condition_variable
  • coroutine
  • csetjmp
  • csignal
  • cstdalign
  • cstdarg
  • cstdbool
  • cstddef
  • cstdint
  • cstdio
  • cstdlib
  • cstring
  • ctgmath
  • ctime
  • cuchar
  • cwchar
  • cwctype
  • deque
  • exception
  • execution
  • expected
  • experimental/coroutine
  • experimental/deque
  • experimental/filesystem
  • experimental/forward_list
  • experimental/generator
  • experimental/list
  • experimental/map
  • experimental/resumable
  • experimental/set
  • experimental/string
  • experimental/unordered_map
  • experimental/unordered_set
  • experimental/vector
  • filesystem
  • format
  • forward_list
  • fstream
  • functional
  • future
  • hash_map
  • hash_set
  • initializer_list
  • iomanip
  • ios
  • iosfwd
  • iostream
  • iso646.h
  • istream
  • iterator
  • latch
  • limits
  • list
  • llll
  • locale
  • map
  • memory
  • memory_resource
  • mutex
  • new
  • numbers
  • numeric
  • optional
  • ostream
  • queue
  • random
  • ranges
  • ratio
  • regex
  • scoped_allocator
  • semaphore
  • set
  • shared_mutex
  • source_location
  • span
  • spanstream
  • sstream
  • stack
  • stacktrace
  • stdatomic.h
  • stdexcept
  • stop_token
  • streambuf
  • string
  • string_view
  • strstream
  • syncstream
  • system_error
  • thread
  • tuple
  • type_traits
  • typeindex
  • typeinfo
  • unordered_map
  • unordered_set
  • use_ansi.h
  • utility
  • valarray
  • variant (_STD-qualify _Ugly non-member function calls in <variant> #3148)
  • vector
  • version
  • xatomic.h
  • xatomic_wait.h
  • xbit_ops.h
  • xcall_once.h
  • xcharconv.h
  • xcharconv_ryu.h
  • xcharconv_ryu_tables.h
  • xcharconv_tables.h
  • xerrc.h
  • xfacet
  • xfilesystem_abi.h
  • xhash
  • xiosbase
  • xkeycheck.h
  • xlocale
  • xlocbuf
  • xlocinfo
  • xlocmes
  • xlocmon
  • xlocnum
  • xloctime
  • xmemory
  • xnode_handle.h
  • xpolymorphic_allocator.h
  • xsmf_control.h
  • xstddef
  • xstring
  • xthreads.h
  • xtimec.h
  • xtr1common
  • xtree
  • xutility
  • ymath.h
  • yvals.h
  • yvals_core.h

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions