mirror of
https://github.com/boostorg/optional.git
synced 2025-07-16 05:42:07 +02:00
Add test case for fix to issue #78
This commit is contained in:
@ -11,6 +11,10 @@
|
|||||||
|
|
||||||
[section:relnotes Release Notes]
|
[section:relnotes Release Notes]
|
||||||
|
|
||||||
|
[heading Boost Release 1.73]
|
||||||
|
|
||||||
|
* Fixed [@https://github.com/boostorg/optional/issues/78 issue #78].
|
||||||
|
|
||||||
[heading Boost Release 1.69]
|
[heading Boost Release 1.69]
|
||||||
|
|
||||||
* Remove deprecation mark from `reset()` method (without arguments).
|
* Remove deprecation mark from `reset()` method (without arguments).
|
||||||
|
@ -28,6 +28,15 @@
|
|||||||
</h2></div></div></div>
|
</h2></div></div></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h0"></a>
|
<a name="boost_optional.relnotes.h0"></a>
|
||||||
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_73"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_73">Boost
|
||||||
|
Release 1.73</a>
|
||||||
|
</h4>
|
||||||
|
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
|
||||||
|
Fixed <a href="https://github.com/boostorg/optional/issues/78" target="_top">issue
|
||||||
|
#78</a>.
|
||||||
|
</li></ul></div>
|
||||||
|
<h4>
|
||||||
|
<a name="boost_optional.relnotes.h1"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_69"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_69">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_69"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_69">Boost
|
||||||
Release 1.69</a>
|
Release 1.69</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -45,7 +54,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h1"></a>
|
<a name="boost_optional.relnotes.h2"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_68"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_68">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_68"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_68">Boost
|
||||||
Release 1.68</a>
|
Release 1.68</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -62,7 +71,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h2"></a>
|
<a name="boost_optional.relnotes.h3"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_67"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_67">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_67"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_67">Boost
|
||||||
Release 1.67</a>
|
Release 1.67</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -76,7 +85,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h3"></a>
|
<a name="boost_optional.relnotes.h4"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_66"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_66">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_66"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_66">Boost
|
||||||
Release 1.66</a>
|
Release 1.66</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -94,7 +103,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h4"></a>
|
<a name="boost_optional.relnotes.h5"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_63"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_63">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_63"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_63">Boost
|
||||||
Release 1.63</a>
|
Release 1.63</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -118,7 +127,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h5"></a>
|
<a name="boost_optional.relnotes.h6"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_62"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_62">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_62"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_62">Boost
|
||||||
Release 1.62</a>
|
Release 1.62</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -126,7 +135,7 @@
|
|||||||
Fixed <a href="https://svn.boost.org/trac/boost/ticket/12179" target="_top">Trac #12179</a>.
|
Fixed <a href="https://svn.boost.org/trac/boost/ticket/12179" target="_top">Trac #12179</a>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h6"></a>
|
<a name="boost_optional.relnotes.h7"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_61"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_61">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_61"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_61">Boost
|
||||||
Release 1.61</a>
|
Release 1.61</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -169,7 +178,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h7"></a>
|
<a name="boost_optional.relnotes.h8"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_60"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_60">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_60"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_60">Boost
|
||||||
Release 1.60</a>
|
Release 1.60</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -180,7 +189,7 @@
|
|||||||
#11203</a>.
|
#11203</a>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h8"></a>
|
<a name="boost_optional.relnotes.h9"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_59"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_59">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_59"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_59">Boost
|
||||||
Release 1.59</a>
|
Release 1.59</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -194,7 +203,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h9"></a>
|
<a name="boost_optional.relnotes.h10"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_58"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_58">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_58"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_58">Boost
|
||||||
Release 1.58</a>
|
Release 1.58</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -230,7 +239,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h10"></a>
|
<a name="boost_optional.relnotes.h11"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_57"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_57">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_57"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_57">Boost
|
||||||
Release 1.57</a>
|
Release 1.57</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -240,7 +249,7 @@
|
|||||||
to fix C++03 compile error on <code class="computeroutput"><span class="identifier">logic_error</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code>"</em></span>.
|
to fix C++03 compile error on <code class="computeroutput"><span class="identifier">logic_error</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code>"</em></span>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h11"></a>
|
<a name="boost_optional.relnotes.h12"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_56"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_56">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_56"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_56">Boost
|
||||||
Release 1.56</a>
|
Release 1.56</a>
|
||||||
</h4>
|
</h4>
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
<td align="left"><p><small>Last revised: November 08, 2018 at 17:44:53 GMT</small></p></td>
|
<td align="left"><p><small>Last revised: December 19, 2019 at 23:07:07 GMT</small></p></td>
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
<td align="right"><div class="copyright-footer"></div></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -50,6 +50,7 @@ import testing ;
|
|||||||
[ run optional_test_member_T.cpp ]
|
[ run optional_test_member_T.cpp ]
|
||||||
[ run optional_test_tc_base.cpp ]
|
[ run optional_test_tc_base.cpp ]
|
||||||
[ compile optional_test_sfinae_friendly_ctor.cpp ]
|
[ compile optional_test_sfinae_friendly_ctor.cpp ]
|
||||||
|
[ compile optional_test_path_assignment.cpp ]
|
||||||
[ compile-fail optional_test_fail_const_swap.cpp ]
|
[ compile-fail optional_test_fail_const_swap.cpp ]
|
||||||
[ compile-fail optional_test_ref_convert_assign_const_int_prevented.cpp ]
|
[ compile-fail optional_test_ref_convert_assign_const_int_prevented.cpp ]
|
||||||
[ compile-fail optional_test_fail1.cpp ]
|
[ compile-fail optional_test_fail1.cpp ]
|
||||||
|
62
test/optional_test_path_assignment.cpp
Normal file
62
test/optional_test_path_assignment.cpp
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// Copyright (C) 2019 Andrzej Krzemienski.
|
||||||
|
//
|
||||||
|
// Use, modification, and distribution is subject to 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)
|
||||||
|
//
|
||||||
|
// See http://www.boost.org/lib/optional for documentation.
|
||||||
|
//
|
||||||
|
// You are welcome to contact the author at:
|
||||||
|
// akrzemi1@gmail.com
|
||||||
|
|
||||||
|
#include "boost/optional/optional.hpp"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <typename, typename>
|
||||||
|
struct void_t
|
||||||
|
{
|
||||||
|
typedef void type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T, typename = void>
|
||||||
|
struct trait
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
// the following trait emulates properties std::iterator_traits
|
||||||
|
template <typename T>
|
||||||
|
struct trait<T, BOOST_DEDUCED_TYPENAME void_t<BOOST_DEDUCED_TYPENAME T::value_type,
|
||||||
|
BOOST_DEDUCED_TYPENAME boost::enable_if<boost::is_constructible<T, T&> >::type
|
||||||
|
>::type>
|
||||||
|
{
|
||||||
|
typedef BOOST_DEDUCED_TYPENAME T::value_type value_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
// This class emulates the properties of std::filesystem::path
|
||||||
|
struct Path
|
||||||
|
{
|
||||||
|
template <typename T, typename = BOOST_DEDUCED_TYPENAME trait<T>::value_type>
|
||||||
|
Path(T const&);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
#ifndef BOOST_OPTIONAL_DETAIL_NO_IS_CONSTRUCTIBLE_TRAIT
|
||||||
|
#ifndef BOOST_OPTIONAL_DETAIL_NO_SFINAE_FRIENDLY_CONSTRUCTORS
|
||||||
|
|
||||||
|
boost::optional<Path> optFs1;
|
||||||
|
boost::optional<Path> optFs2;
|
||||||
|
|
||||||
|
optFs1 = optFs2;
|
||||||
|
|
||||||
|
// the following still fails although it shouldn't
|
||||||
|
//BOOST_STATIC_ASSERT((std::is_copy_constructible<boost::optional<Path>>::value));
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
Reference in New Issue
Block a user