[multiple changes]
2005-11-13 Jonathan Wakely <redi@gcc.gnu.org> * include/tr1/boost_shared_ptr.h (get_deleter): Declare before shared_ptr. (shared_ptr<>): Declare get_deleter as friend. (shared_ptr<>:_M_get_deleter): Private. 2005-11-13 Douglas Gregor <doug.gregor@gmail.com> PR libstdc++/24818 * include/tr1/ref_wrap_iterate.h (reference_wrapper::operator()()): Don't dereferene the result of get() before calling it; it's already a reference. * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc: Test nullary calls to reference_wrappers. From-SVN: r106862
This commit is contained in:
parent
7a9018e45b
commit
3270a66b55
3 changed files with 30 additions and 1 deletions
|
@ -1,3 +1,19 @@
|
|||
2005-11-13 Jonathan Wakely <redi@gcc.gnu.org>
|
||||
|
||||
* include/tr1/boost_shared_ptr.h (get_deleter):
|
||||
Declare before shared_ptr.
|
||||
(shared_ptr<>): Declare get_deleter as friend.
|
||||
(shared_ptr<>:_M_get_deleter): Private.
|
||||
|
||||
2005-11-13 Douglas Gregor <doug.gregor@gmail.com>
|
||||
|
||||
PR libstdc++/24818
|
||||
* include/tr1/ref_wrap_iterate.h
|
||||
(reference_wrapper::operator()()): Don't dereferene the result of
|
||||
get() before calling it; it's already a reference.
|
||||
* testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
|
||||
Test nullary calls to reference_wrappers.
|
||||
|
||||
2005-11-11 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/24808
|
||||
|
|
|
@ -40,5 +40,5 @@ template<_GLIBCXX_TEMPLATE_PARAMS>
|
|||
#else
|
||||
typename result_of<_M_func_type()>::type
|
||||
operator()() const
|
||||
{ return (*get())(); }
|
||||
{ return get()(); }
|
||||
#endif
|
||||
|
|
|
@ -56,11 +56,20 @@ struct X
|
|||
X& operator=(const X&);
|
||||
};
|
||||
|
||||
int seventeen() { return 17; }
|
||||
|
||||
struct get_seventeen
|
||||
{
|
||||
typedef int result_type;
|
||||
int operator()() const { return 17; }
|
||||
};
|
||||
|
||||
void test01()
|
||||
{
|
||||
using std::tr1::ref;
|
||||
using std::tr1::cref;
|
||||
|
||||
::get_seventeen get_sev;
|
||||
::X x;
|
||||
::X* xp = &x;
|
||||
int (::X::* p_foo)(float) = &::X::foo;
|
||||
|
@ -73,9 +82,11 @@ void test01()
|
|||
|
||||
// Functions
|
||||
VERIFY(ref(truncate_float)(pi) == 3);
|
||||
VERIFY(ref(seventeen)() == 17);
|
||||
|
||||
// Function pointers
|
||||
VERIFY(cref(&truncate_float)(pi) == 3);
|
||||
VERIFY(cref(&seventeen)() == 17);
|
||||
|
||||
// Member function pointers
|
||||
VERIFY(ref(p_foo)(x, pi) == 3);
|
||||
|
@ -92,6 +103,8 @@ void test01()
|
|||
VERIFY(ref(p_bar)(xp) == 17);
|
||||
|
||||
// Function objects
|
||||
VERIFY(ref(get_sev)() == 17);
|
||||
VERIFY(cref(get_sev)() == 17);
|
||||
VERIFY(ref(x)(pi) == 4);
|
||||
VERIFY(cref(x)(pi) == 5);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue