mirror of
https://github.com/fmtlib/fmt.git
synced 2024-12-26 00:21:13 +00:00
Don't inject internal names into std (#1120)
This commit is contained in:
parent
544b927933
commit
d306585a3f
@ -257,9 +257,12 @@ namespace internal {
|
||||
#endif
|
||||
|
||||
// A fallback implementation of uintptr_t for systems that lack it.
|
||||
namespace uintptr {
|
||||
struct uintptr_t {
|
||||
unsigned char value[sizeof(void*)];
|
||||
};
|
||||
}
|
||||
using uintptr::uintptr_t;
|
||||
typedef std::numeric_limits<uintptr_t> numutil;
|
||||
|
||||
template <typename T> inline bool use_grisu() {
|
||||
@ -312,7 +315,7 @@ typename Allocator::value_type* allocate(Allocator& alloc, std::size_t n) {
|
||||
FMT_END_NAMESPACE
|
||||
|
||||
namespace std {
|
||||
using namespace fmt::v5::internal;
|
||||
using namespace fmt::v5::internal::uintptr;
|
||||
// Standard permits specialization of std::numeric_limits. This specialization
|
||||
// is used to detect presence of uintptr_t.
|
||||
template <>
|
||||
|
@ -2540,6 +2540,11 @@ TEST(FormatTest, EmphasisNonHeaderOnly) {
|
||||
}
|
||||
|
||||
TEST(FormatTest, CharTraitsIsNotAmbiguous) {
|
||||
// Test that we don't inject internal names into the std namespace.
|
||||
using namespace std;
|
||||
char_traits<char>::char_type c;
|
||||
#if __cplusplus >= 201103L
|
||||
std::string s;
|
||||
begin(s);
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user