bloomberg / bde

Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.
Apache License 2.0
1.68k stars 318 forks source link

libstdc++-10 std::allocator pointer removed #269

Open seanbaxter opened 4 years ago

seanbaxter commented 4 years ago

I'm getting a build error at bslstl_bitset.t.cpp:1140

        ASSERTV(LINE, (X.to_string<char, native_std::char_traits<char>,
                           native_std::allocator<char> >() == s));

It took a long time to debug, but I have some info for you: That code tries to get typename std::allocator::pointer.

See /usr/include/c++/10/bits/allocator.h:115

  template<typename _Tp>
    class allocator : public __allocator_base<_Tp>
    {
    public:
      typedef _Tp        value_type;
      typedef size_t     size_type;
      typedef ptrdiff_t  difference_type;
#if __cplusplus <= 201703L
      typedef _Tp*       pointer;
      typedef const _Tp* const_pointer;
      typedef _Tp&       reference;
      typedef const _Tp& const_reference;

      template<typename _Tp1>
    struct rebind
    { typedef allocator<_Tp1> other; };
#endif

pointer removed!

Possible I need to change my BDE cmake stuff to support libstdc++-10 with a 2020 __cplusplus macro.

Please advise.

RMGiroux commented 4 years ago

Thanks, this is being tracked internally via ticket {DRQS 164056378}.

seanbaxter commented 4 years ago

@AlisdairM Do these patches https://github.com/bloomberg/bde/pull/268 address this?

AlisdairM commented 4 years ago

Yes, I believe those should address the pointer issue until the internal QAed branch lands.