Skip to content
forked from fmtlib/fmt

Commit

Permalink
Merge pull request #165 from fmtlib/master
Browse files Browse the repository at this point in the history
fix `fmt::get` for some GCC versions and legacy Clang (fmtlib#2144)
  • Loading branch information
sthagen authored Feb 23, 2021
2 parents bed6257 + d8e1c9f commit 30c6615
Showing 1 changed file with 6 additions and 11 deletions.
17 changes: 6 additions & 11 deletions include/fmt/format.h
Original file line number Diff line number Diff line change
Expand Up @@ -3833,21 +3833,16 @@ FMT_CONSTEXPR void advance_to(
auto s = fmt::format("{}", fmt::ptr(p));
\endrst
*/
template <typename T> inline const void* ptr(const T* p) { return p; }
template <typename T> inline const void* ptr(const std::unique_ptr<T>& p) {
return p.get();
template <typename T> const void* ptr(T p) {
static_assert(std::is_pointer<T>::value, "");
return detail::bit_cast<const void*>(p);
}
template <typename T> inline const void* ptr(const std::shared_ptr<T>& p) {
template <typename T> const void* ptr(const std::unique_ptr<T>& p) {
return p.get();
}
#if !FMT_MSC_VER
// MSVC lets function pointers decay to void pointers, so this
// overload is unnecessary.
template <typename T, typename... Args>
inline const void* ptr(T (*fn)(Args...)) {
return detail::bit_cast<const void*>(fn);
template <typename T> const void* ptr(const std::shared_ptr<T>& p) {
return p.get();
}
#endif

class bytes {
private:
Expand Down

0 comments on commit 30c6615

Please sign in to comment.