?????????? ????????? - ??????????????? - /home/agenciai/public_html/cd38d8/policy.tar
???????
base.hpp 0000644 00000010027 15125461223 0006170 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (6 commits) and Andrzej KrzemieĊski <akrzemi1@gmail.com> (1 commit) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_BASE_HPP #define BOOST_OUTCOME_POLICY_BASE_HPP #include "../detail/value_storage.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { namespace detail { using BOOST_OUTCOME_V2_NAMESPACE::detail::make_ub; } /*! AWAITING HUGO JSON CONVERSION TOOL SIGNATURE NOT RECOGNISED */ struct base { protected: template <class Impl> static constexpr void _make_ub(Impl &&self) noexcept { return detail::make_ub(static_cast<Impl &&>(self)); } template <class Impl> static constexpr bool _has_value(Impl &&self) noexcept { return self._state._status.have_value(); } template <class Impl> static constexpr bool _has_error(Impl &&self) noexcept { return self._state._status.have_error(); } template <class Impl> static constexpr bool _has_exception(Impl &&self) noexcept { return self._state._status.have_exception(); } template <class Impl> static constexpr bool _has_error_is_errno(Impl &&self) noexcept { return self._state._status.have_error_is_errno(); } template <class Impl> static constexpr void _set_has_value(Impl &&self, bool v) noexcept { self._state._status.set_have_value(v); } template <class Impl> static constexpr void _set_has_error(Impl &&self, bool v) noexcept { self._state._status.set_have_error(v); } template <class Impl> static constexpr void _set_has_exception(Impl &&self, bool v) noexcept { self._state._status.set_have_exception(v); } template <class Impl> static constexpr void _set_has_error_is_errno(Impl &&self, bool v) noexcept { self._state._status.set_have_error_is_errno(v); } template <class Impl> static constexpr auto &&_value(Impl &&self) noexcept { return static_cast<Impl &&>(self)._state._value; } template <class Impl> static constexpr auto &&_error(Impl &&self) noexcept { return static_cast<Impl &&>(self)._error; } public: template <class R, class S, class P, class NoValuePolicy, class Impl> static inline constexpr auto &&_exception(Impl &&self) noexcept; template <class Impl> static constexpr void narrow_value_check(Impl &&self) noexcept { if(!_has_value(self)) { _make_ub(self); } } template <class Impl> static constexpr void narrow_error_check(Impl &&self) noexcept { if(!_has_error(self)) { _make_ub(self); } } template <class Impl> static constexpr void narrow_exception_check(Impl &&self) noexcept { if(!_has_exception(self)) { _make_ub(self); } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif fail_to_compile_observers.hpp 0000644 00000010536 15125461223 0012502 0 ustar 00 /* Policies for result and outcome (C) 2018-2020 Niall Douglas <http://www.nedproductions.biz/> (4 commits) File Created: Sep 2018 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_FAIL_TO_COMPILE_OBSERVERS_HPP #define BOOST_OUTCOME_POLICY_FAIL_TO_COMPILE_OBSERVERS_HPP #include "base.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN #define BOOST_OUTCOME_FAIL_TO_COMPILE_OBSERVERS_MESSAGE \ "Attempt to wide observe value, error or " \ "exception for a basic_result/basic_outcome given an EC or EP type which is not void, and for whom " \ "trait::is_error_code_available<EC>, trait::is_exception_ptr_available<EC>, and trait::is_exception_ptr_available<EP> " \ "are all false. Please specify a NoValuePolicy to tell basic_result/basic_outcome what to do, or else use " \ "a more specific convenience type alias such as unchecked<T, E> to indicate you want the wide " \ "observers to be narrow, or checked<T, E> to indicate you always want an exception throw etc." namespace policy { struct fail_to_compile_observers : base { template <class Impl> static constexpr void wide_value_check(Impl && /* unused */) { static_assert(!std::is_same<Impl, Impl>::value, BOOST_OUTCOME_FAIL_TO_COMPILE_OBSERVERS_MESSAGE); } template <class Impl> static constexpr void wide_error_check(Impl && /* unused */) { static_assert(!std::is_same<Impl, Impl>::value, BOOST_OUTCOME_FAIL_TO_COMPILE_OBSERVERS_MESSAGE); } template <class Impl> static constexpr void wide_exception_check(Impl && /* unused */) { static_assert(!std::is_same<Impl, Impl>::value, BOOST_OUTCOME_FAIL_TO_COMPILE_OBSERVERS_MESSAGE); } }; } // namespace policy #undef BOOST_OUTCOME_FAIL_TO_COMPILE_OBSERVERS_MESSAGE BOOST_OUTCOME_V2_NAMESPACE_END #endif outcome_exception_ptr_rethrow.hpp 0000644 00000006113 15125461223 0013447 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (10 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_OUTCOME_EXCEPTION_PTR_RETHROW_HPP #define BOOST_OUTCOME_POLICY_OUTCOME_EXCEPTION_PTR_RETHROW_HPP #include "result_exception_ptr_rethrow.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL type definition exception_ptr_rethrow. Potential doc page: NOT FOUND */ template <class T, class EC, class E> struct exception_ptr_rethrow : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { if(base::_has_exception(std::forward<Impl>(self))) { detail::_rethrow_exception<trait::is_exception_ptr_available<E>::value>{base::_exception<T, EC, E, exception_ptr_rethrow>(std::forward<Impl>(self))}; } if(base::_has_error(std::forward<Impl>(self))) { detail::_rethrow_exception<trait::is_exception_ptr_available<EC>::value>{base::_error(std::forward<Impl>(self))}; } BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no error")); // NOLINT } } template <class Impl> static constexpr void wide_exception_check(Impl &&self) { if(!base::_has_exception(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no exception")); // NOLINT } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif throw_bad_result_access.hpp 0000644 00000006563 15125461223 0012160 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (13 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_THROW_BAD_RESULT_ACCESS_HPP #define BOOST_OUTCOME_POLICY_THROW_BAD_RESULT_ACCESS_HPP #include "../bad_access.hpp" #include "base.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL type definition throw_bad_result_access. Potential doc page: NOT FOUND */ template <class EC, class EP> struct throw_bad_result_access : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no error")); // NOLINT } } template <class Impl> static constexpr void wide_exception_check(Impl &&self) { if(!base::_has_exception(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no exception")); // NOLINT } } }; template <class EC> struct throw_bad_result_access<EC, void> : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { if(base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access_with<EC>(base::_error(std::forward<Impl>(self)))); } BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no error")); // NOLINT } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif all_narrow.hpp 0000644 00000004334 15125461223 0007422 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (13 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_ALL_NARROW_HPP #define BOOST_OUTCOME_POLICY_ALL_NARROW_HPP #include "base.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL type definition all_narrow. Potential doc page: `all_narrow` */ struct all_narrow : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { base::narrow_value_check(static_cast<Impl &&>(self)); } template <class Impl> static constexpr void wide_error_check(Impl &&self) { base::narrow_error_check(static_cast<Impl &&>(self)); } template <class Impl> static constexpr void wide_exception_check(Impl &&self) { base::narrow_exception_check(static_cast<Impl &&>(self)); } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif result_error_code_throw_as_system_error.hpp 0000644 00000005276 15125461223 0015534 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (8 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_RESULT_ERROR_CODE_THROW_AS_SYSTEM_ERROR_HPP #define BOOST_OUTCOME_POLICY_RESULT_ERROR_CODE_THROW_AS_SYSTEM_ERROR_HPP #include "../bad_access.hpp" #include "base.hpp" #include <system_error> BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { template <class T, class EC, class E> struct error_code_throw_as_system_error; /*! AWAITING HUGO JSON CONVERSION TOOL SIGNATURE NOT RECOGNISED */ template <class T, class EC> struct error_code_throw_as_system_error<T, EC, void> : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { if(base::_has_error(std::forward<Impl>(self))) { // ADL discovered outcome_throw_as_system_error_with_payload(base::_error(std::forward<Impl>(self))); } BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no error")); // NOLINT } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif outcome_error_code_throw_as_system_error.hpp 0000644 00000006226 15125461223 0015665 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (12 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_OUTCOME_ERROR_CODE_THROW_AS_SYSTEM_ERROR_HPP #define BOOST_OUTCOME_POLICY_OUTCOME_ERROR_CODE_THROW_AS_SYSTEM_ERROR_HPP #include "result_error_code_throw_as_system_error.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL type definition error_code_throw_as_system_error. Potential doc page: NOT FOUND */ template <class T, class EC, class E> struct error_code_throw_as_system_error : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { if(base::_has_exception(std::forward<Impl>(self))) { detail::_rethrow_exception<trait::is_exception_ptr_available<E>::value>{base::_exception<T, EC, E, error_code_throw_as_system_error>(std::forward<Impl>(self))}; // NOLINT } if(base::_has_error(std::forward<Impl>(self))) { // ADL discovered outcome_throw_as_system_error_with_payload(base::_error(std::forward<Impl>(self))); } BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no error")); // NOLINT } } template <class Impl> static constexpr void wide_exception_check(Impl &&self) { if(!base::_has_exception(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_outcome_access("no exception")); // NOLINT } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif terminate.hpp 0000644 00000004604 15125461223 0007252 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (12 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_TERMINATE_HPP #define BOOST_OUTCOME_POLICY_TERMINATE_HPP #include "base.hpp" #include <cstdlib> BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL type definition terminate. Potential doc page: `terminate` */ struct terminate : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(static_cast<Impl &&>(self))) { std::abort(); } } template <class Impl> static constexpr void wide_error_check(Impl &&self) noexcept { if(!base::_has_error(static_cast<Impl &&>(self))) { std::abort(); } } template <class Impl> static constexpr void wide_exception_check(Impl &&self) { if(!base::_has_exception(static_cast<Impl &&>(self))) { std::abort(); } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif result_exception_ptr_rethrow.hpp 0000644 00000005154 15125461223 0013316 0 ustar 00 /* Policies for result and outcome (C) 2017-2020 Niall Douglas <http://www.nedproductions.biz/> (6 commits) File Created: Oct 2017 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef BOOST_OUTCOME_POLICY_RESULT_EXCEPTION_PTR_RETHROW_HPP #define BOOST_OUTCOME_POLICY_RESULT_EXCEPTION_PTR_RETHROW_HPP #include "../bad_access.hpp" #include "base.hpp" BOOST_OUTCOME_V2_NAMESPACE_EXPORT_BEGIN namespace policy { /*! AWAITING HUGO JSON CONVERSION TOOL SIGNATURE NOT RECOGNISED */ template <class T, class EC, class E> struct exception_ptr_rethrow; template <class T, class EC> struct exception_ptr_rethrow<T, EC, void> : base { template <class Impl> static constexpr void wide_value_check(Impl &&self) { if(!base::_has_value(std::forward<Impl>(self))) { if(base::_has_error(std::forward<Impl>(self))) { // ADL rethrow_exception(policy::exception_ptr(base::_error(std::forward<Impl>(self)))); } BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no value")); // NOLINT } } template <class Impl> static constexpr void wide_error_check(Impl &&self) { if(!base::_has_error(std::forward<Impl>(self))) { BOOST_OUTCOME_THROW_EXCEPTION(bad_result_access("no error")); // NOLINT } } }; } // namespace policy BOOST_OUTCOME_V2_NAMESPACE_END #endif
| ver. 1.6 |
Github
|
.
| PHP 8.2.30 | ??????????? ?????????: 0 |
proxy
|
phpinfo
|
???????????