#1846 closed Bugs (fixed)
boost::addressof() doesn't work with function references
Reported by: | Eric Niebler | Owned by: | Peter Dimov |
---|---|---|---|
Milestone: | Boost 1.36.0 | Component: | None |
Version: | Boost 1.35.0 | Severity: | Problem |
Keywords: | Cc: |
Description
#include <boost/utility/addressof.hpp> void foo() {} int main() { boost::addressof(foo); // boom }
This also affects reference_wrapper and any other utility that makes use of boost::addressof().
Change History (5)
comment:1 by , 15 years ago
Status: | new → assigned |
---|
comment:2 by , 15 years ago
Yours is the last name in the comment block at the top of the file. Hence the honor. :-)
Seems odd to restrict reference_wrapper and addressof to object types when the semantics for functions is perfectly reasonable and obvious. It certainly hurts generic code to have to test for function references before any call to boost::ref(). I actually had to work around this problem in my code.
comment:5 by , 15 years ago
(In [44725]) Merged revisions 44678-44679,44681-44689,44691-44692,44694,44697-44699,44704-44707,44711,44715,44717-44719,44722 via svnmerge from https://svn.boost.org/svn/boost/trunk
........
r44678 | chris_kohlhoff | 2008-04-20 22:43:42 -0700 (Sun, 20 Apr 2008) | 3 lines
Add porthopper example to demonstrate applications that mix synchronous and asynchronous operations.
........
r44679 | chris_kohlhoff | 2008-04-20 22:52:20 -0700 (Sun, 20 Apr 2008) | 3 lines
Remove a local variable that was hiding the ec parameter and preventing error codes from being correctly propagated. Fixes #1820.
........
r44681 | chris_kohlhoff | 2008-04-20 23:14:29 -0700 (Sun, 20 Apr 2008) | 2 lines
Ensure all non-friend related functions are included in the documentation.
........
r44682 | chris_kohlhoff | 2008-04-20 23:15:17 -0700 (Sun, 20 Apr 2008) | 3 lines
Add UNIX domain sockets, POSIX stream-oriented descriptors and Windows stream-oriented handles to the reference documentation.
........
r44683 | chris_kohlhoff | 2008-04-20 23:15:50 -0700 (Sun, 20 Apr 2008) | 2 lines
Regenerate documentation.
........
r44684 | chris_kohlhoff | 2008-04-20 23:20:32 -0700 (Sun, 20 Apr 2008) | 3 lines
Add documentation on the limits of the number of buffers that may be transferred in individual operations.
........
r44685 | chris_kohlhoff | 2008-04-21 00:59:21 -0700 (Mon, 21 Apr 2008) | 3 lines
Add requirements for handle and descriptor services. Add new classes to the quickref index page.
........
r44686 | jhunold | 2008-04-21 01:07:55 -0700 (Mon, 21 Apr 2008) | 2 lines
Remove trailing comma at end of enumerator list (gcc 4.x -pedantic error)
........
r44687 | johnmaddock | 2008-04-21 01:46:18 -0700 (Mon, 21 Apr 2008) | 1 line
Oops fix typo.
........
r44688 | johnmaddock | 2008-04-21 01:47:04 -0700 (Mon, 21 Apr 2008) | 1 line
Fix msvc warnings using new warning suppression header.
........
r44689 | johnmaddock | 2008-04-21 02:19:30 -0700 (Mon, 21 Apr 2008) | 1 line
Added new macro BOOST_NO_TEMPLATED_IOSTREAMS in response to issue #1765.
........
r44691 | speedsnail | 2008-04-21 04:46:03 -0700 (Mon, 21 Apr 2008) | 1 line
removed act-as-jamfile, which gives errors when boost.use-project is not invoked from Jamroot file.
........
r44692 | johnmaddock | 2008-04-21 05:06:02 -0700 (Mon, 21 Apr 2008) | 2 lines
Changed macro BOOST_PARTIAL_SPECIALIZATION_EXPLICIT_ARGS to BOOST_NO_PARTIAL_SPECIALIZATION_DEFAULT_ARGS. Changed <utility> to <boost/config/no_tr1/utility.hpp> in order to prevent cyclic dependencies between Fusion Tuples and TR1.
........
r44694 | johnmaddock | 2008-04-21 06:00:16 -0700 (Mon, 21 Apr 2008) | 2 lines
Merged changes from the Sandbox, and rebuilt the docs. Also added some missing files.
........
r44697 | danieljames | 2008-04-21 08:55:40 -0700 (Mon, 21 Apr 2008) | 1 line
Factor out the code for choosing the bucket count, and which bucket that hash values map to make it easier to experiment with alternative policies.
........
r44698 | anthonyw | 2008-04-21 09:20:31 -0700 (Mon, 21 Apr 2008) | 1 line
added private copy assignment operator and copy constructor to remove warnings
........
r44699 | anthonyw | 2008-04-21 09:22:16 -0700 (Mon, 21 Apr 2008) | 1 line
Revamped condition variable to try and fix swallowed-notify problems (trac issue #1834)
........
r44704 | pdimov | 2008-04-21 14:29:28 -0700 (Mon, 21 Apr 2008) | 1 line
Add ref_fn_test.cpp per #1846.
........
r44705 | pdimov | 2008-04-21 14:42:29 -0700 (Mon, 21 Apr 2008) | 1 line
Fix #1846.
........
r44706 | emildotchevski | 2008-04-21 15:42:54 -0700 (Mon, 21 Apr 2008) | 1 line
Fixed MSVC-specific compile errors when /Za command-line option is used, due to lack of throw() in std::~exception().
........
r44707 | pdimov | 2008-04-21 16:01:51 -0700 (Mon, 21 Apr 2008) | 1 line
Honor BOOST_NO_TEMPLATED_IOSTREAMS.
........
r44711 | daniel_frey | 2008-04-21 23:31:32 -0700 (Mon, 21 Apr 2008) | 1 line
Avoid unneccessary increment/decrement of reference count
........
r44715 | johnmaddock | 2008-04-22 01:34:43 -0700 (Tue, 22 Apr 2008) | 1 line
Added new files.
........
r44717 | dgregor | 2008-04-22 05:24:25 -0700 (Tue, 22 Apr 2008) | 1 line
Resource-constrained shortest paths, from Michael Drexl
........
r44718 | hkaiser | 2008-04-22 07:13:58 -0700 (Tue, 22 Apr 2008) | 2 lines
Spirit: Started to add '#include <boost/config/warning_disable.hpp>' to tests and examples.
........
r44719 | hkaiser | 2008-04-22 08:10:52 -0700 (Tue, 22 Apr 2008) | 1 line
Spirit.Support: Minor change
........
r44722 | hkaiser | 2008-04-22 10:23:21 -0700 (Tue, 22 Apr 2008) | 1 line
Wave: fixed #1843
........
Who volunteered me as a maintainer of addressof :-)
The documentations for addressof and reference_wrapper both state that they work on objects, and functions are not objects. The latest working draft says so as well.