+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
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;
// 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);
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);
}