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