Re: [Boost-bugs] [Boost C++ Libraries] #11550: boost::call_once issues

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11550: boost::call_once issues
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-09-03 06:28:51


#11550: boost::call_once issues
-------------------------------+----------------------
  Reporter: lcarreon@… | Owner: viboes
      Type: Bugs | Status: assigned
 Milestone: To Be Determined | Component: thread
   Version: Boost 1.59.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+----------------------
Description changed by viboes:

Old description:

> I compiled Boost 1.59.0 with Solaris Studio 12.4 in C++11 mode and I
> get the following error messages:
>
> "libs/thread/src/pthread/thread.cpp", line 144: Error: Overloading
> ambiguity between "boost::call_once<void(*)()>(boost::once_flag&,
> void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&,
> void(&)())".
> "libs/thread/src/pthread/thread.cpp", line 150: Error: Overloading
> ambiguity between "boost::call_once<void(*)()>(boost::once_flag&,
> void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&,
> void(&)())".
> "libs/context/src/posix/stack_traits.cpp", line 58: Error: Overloading
> ambiguity between "boost::call_once<void(&)(unsigned long*), unsigned
> long*>(boost::once_flag&, void(&)(unsigned long*), unsigned long*&&)" and
> "boost::call_once<void(*)(unsigned long*), unsigned
> long*>(boost::once_flag&, void(*)(unsigned long*), unsigned long*)".
> "libs/context/src/posix/stack_traits.cpp", line 66: Error: Overloading
> ambiguity between "boost::call_once<void(&)(rlimit*),
> rlimit*>(boost::once_flag&, void(&)(rlimit*), rlimit*&&)" and
> "boost::call_once<void(*)(rlimit*), rlimit*>(boost::once_flag&,
> void(*)(rlimit*), rlimit*)".
> "libs/coroutine/src/posix/stack_traits.cpp", line 56: Error: Overloading
> ambiguity between "boost::call_once<void(&)(unsigned long*), unsigned
> long*>(boost::once_flag&, void(&)(unsigned long*), unsigned long*&&)" and
> "boost::call_once<void(*)(unsigned long*), unsigned
> long*>(boost::once_flag&, void(*)(unsigned long*), unsigned long*)".
> "libs/coroutine/src/posix/stack_traits.cpp", line 64: Error: Overloading
> ambiguity between "boost::call_once<void(&)(rlimit*),
> rlimit*>(boost::once_flag&, void(&)(rlimit*), rlimit*&&)" and
> "boost::call_once<void(*)(rlimit*), rlimit*>(boost::once_flag&,
> void(*)(rlimit*), rlimit*)".
> "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
> "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
> line 145: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/spirit/home/classic/phoenix/closures.hpp", line 427: Error:
> Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
> "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
> line 145: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
> "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
> line 145: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/spirit/home/classic/phoenix/closures.hpp", line 427: Error:
> Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
> "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
> line 145: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
> "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
> "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
> line 145: Error: Overloading ambiguity between
> "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
> "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
>
> I'm not 100% sure whether these are compiler issues or Boost compiler
> configuration issues thus I decided to raise this ticket.

New description:

 I compiled Boost 1.59.0 with Solaris Studio 12.4 in C++11 mode and I
  get the following error messages:


 {{{
 "libs/thread/src/pthread/thread.cpp", line 144: Error: Overloading
 ambiguity between "boost::call_once<void(*)()>(boost::once_flag&,
 void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&,
 void(&)())".
 "libs/thread/src/pthread/thread.cpp", line 150: Error: Overloading
 ambiguity between "boost::call_once<void(*)()>(boost::once_flag&,
 void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&,
 void(&)())".
 "libs/context/src/posix/stack_traits.cpp", line 58: Error: Overloading
 ambiguity between "boost::call_once<void(&)(unsigned long*), unsigned
 long*>(boost::once_flag&, void(&)(unsigned long*), unsigned long*&&)" and
 "boost::call_once<void(*)(unsigned long*), unsigned
 long*>(boost::once_flag&, void(*)(unsigned long*), unsigned long*)".
 "libs/context/src/posix/stack_traits.cpp", line 66: Error: Overloading
 ambiguity between "boost::call_once<void(&)(rlimit*),
 rlimit*>(boost::once_flag&, void(&)(rlimit*), rlimit*&&)" and
 "boost::call_once<void(*)(rlimit*), rlimit*>(boost::once_flag&,
 void(*)(rlimit*), rlimit*)".
 "libs/coroutine/src/posix/stack_traits.cpp", line 56: Error: Overloading
 ambiguity between "boost::call_once<void(&)(unsigned long*), unsigned
 long*>(boost::once_flag&, void(&)(unsigned long*), unsigned long*&&)" and
 "boost::call_once<void(*)(unsigned long*), unsigned
 long*>(boost::once_flag&, void(*)(unsigned long*), unsigned long*)".
 "libs/coroutine/src/posix/stack_traits.cpp", line 64: Error: Overloading
 ambiguity between "boost::call_once<void(&)(rlimit*),
 rlimit*>(boost::once_flag&, void(&)(rlimit*), rlimit*&&)" and
 "boost::call_once<void(*)(rlimit*), rlimit*>(boost::once_flag&,
 void(*)(rlimit*), rlimit*)".
 "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
 line 145: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/spirit/home/classic/phoenix/closures.hpp", line 427: Error:
 Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
 line 145: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
 line 145: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/spirit/home/classic/phoenix/closures.hpp", line 427: Error:
 Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
 line 145: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 "./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 "./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp",
 line 145: Error: Overloading ambiguity between
 "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and
 "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 }}}


 I'm not 100% sure whether these are compiler issues or Boost compiler
 configuration issues thus I decided to raise this ticket.

--
-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11550#comment:6>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:18 UTC