forked from boostorg/core
Disable binding ref to temporaries when rvalue references are supported
This commit is contained in:
@@ -19,6 +19,9 @@ compile-fail checked_delete_fail2.cpp ;
|
||||
|
||||
compile ref_ct_test.cpp ;
|
||||
run ref_test.cpp ;
|
||||
compile-fail ref_rv_fail1.cpp ;
|
||||
compile-fail ref_rv_fail2.cpp ;
|
||||
compile-fail ref_rv_fail3.cpp ;
|
||||
|
||||
run eif_constructors.cpp ;
|
||||
run eif_dummy_arg_disambiguation.cpp ;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
// Copyright 2002-2004 David Abrahams and Aleksey Gurtovoy
|
||||
// Copyright 2014 Agustin Berge
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/ref.hpp>
|
||||
|
||||
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<int const> r(1); // this should produce an ERROR
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
# else
|
||||
# error To fail, this test requires rvalue references
|
||||
# endif
|
||||
@@ -0,0 +1,15 @@
|
||||
// Copyright 2002-2004 David Abrahams and Aleksey Gurtovoy
|
||||
// Copyright 2014 Agustin Berge
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/ref.hpp>
|
||||
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<int> r = boost::ref(2); // this should produce an ERROR
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// Copyright 2002-2004 David Abrahams and Aleksey Gurtovoy
|
||||
// Copyright 2014 Agustin Berge
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/ref.hpp>
|
||||
|
||||
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
|
||||
struct X {};
|
||||
|
||||
X const crv() { return X(); }
|
||||
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<X const> r = boost::ref(crv()); // this should produce an ERROR
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
# else
|
||||
# error To fail, this test requires rvalue references
|
||||
# endif
|
||||
Reference in New Issue
Block a user