bde icon indicating copy to clipboard operation
bde copied to clipboard

libstdc++-10 std::allocator pointer removed

Open seanbaxter opened this issue 4 years ago • 3 comments

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.

seanbaxter avatar Oct 01 '20 03:10 seanbaxter

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

RMGiroux avatar Oct 01 '20 11:10 RMGiroux

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

seanbaxter avatar Oct 07 '20 12:10 seanbaxter

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

AlisdairM avatar Oct 07 '20 17:10 AlisdairM