Преглед на файлове

Noexcept of scope guard mctors updated to P0052R5 (#49).

main
offa преди 7 години
родител
ревизия
7b96c2afee
променени са 3 файла, в които са добавени 12 реда и са изтрити 6 реда
  1. +4
    -2
      include/scope_exit.h
  2. +4
    -2
      include/scope_fail.h
  3. +4
    -2
      include/scope_success.h

+ 4
- 2
include/scope_exit.h Целия файл

@@ -60,7 +60,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_exit(scope_exit&& other) : m_exitFunction(std::move(other.m_exitFunction)),
scope_exit(scope_exit&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(std::move(other.m_exitFunction)),
m_execute_on_destruction(other.m_execute_on_destruction)
{
other.release();
@@ -69,7 +70,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<!std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_exit(scope_exit&& other) : m_exitFunction(other.m_exitFunction),
scope_exit(scope_exit&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(other.m_exitFunction),
m_execute_on_destruction(other.m_execute_on_destruction)
{
other.release();

+ 4
- 2
include/scope_fail.h Целия файл

@@ -63,7 +63,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_fail(scope_fail&& other) : m_exitFunction(std::move(other.m_exitFunction)),
scope_fail(scope_fail&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(std::move(other.m_exitFunction)),
m_execute_on_destruction(other.m_execute_on_destruction),
m_uncaught_on_creation(uncaught_exceptions())
{
@@ -73,7 +74,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<!std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_fail(scope_fail&& other) : m_exitFunction(other.m_exitFunction),
scope_fail(scope_fail&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(other.m_exitFunction),
m_execute_on_destruction(other.m_execute_on_destruction),
m_uncaught_on_creation(other.m_uncaught_on_creation)
{

+ 4
- 2
include/scope_success.h Целия файл

@@ -58,7 +58,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_success(scope_success&& other) : m_exitFunction(std::move(other.m_exitFunction)),
scope_success(scope_success&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(std::move(other.m_exitFunction)),
m_execute_on_destruction(other.m_execute_on_destruction),
m_uncaught_on_creation(uncaught_exceptions())
{
@@ -68,7 +69,8 @@ namespace sr
template<class T = EF,
std::enable_if_t<!std::is_nothrow_move_constructible<T>::value, int> = 0
>
scope_success(scope_success&& other) : m_exitFunction(other.m_exitFunction),
scope_success(scope_success&& other) noexcept(std::is_nothrow_move_constructible<T>::value || std::is_nothrow_copy_constructible<T>::value)
: m_exitFunction(other.m_exitFunction),
m_execute_on_destruction(other.m_execute_on_destruction),
m_uncaught_on_creation(other.m_uncaught_on_creation)
{

Loading…
Отказ
Запис