Browse Source

Scope guards noexecpt value updated according R8 (#121).

main
offa 6 years ago
parent
commit
59a47687d4
4 changed files with 8 additions and 4 deletions
  1. +2
    -1
      include/detail/scope_guard_base.h
  2. +2
    -1
      include/scope_exit.h
  3. +2
    -1
      include/scope_fail.h
  4. +2
    -1
      include/scope_success.h

+ 2
- 1
include/detail/scope_guard_base.h View File

@@ -56,7 +56,8 @@ namespace sr::detail
std::enable_if_t<(!std::is_lvalue_reference_v<EFP>)
&& std::is_nothrow_constructible_v<EF, EFP>, int> = 0
>
explicit scope_guard_base(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>)
explicit scope_guard_base(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>
|| std::is_nothrow_constructible_v<EF, EFP&>)
: m_exitfunction(std::move(exitFunction)),
m_execute_on_destruction(true)
{

+ 2
- 1
include/scope_exit.h View File

@@ -51,7 +51,8 @@ namespace sr
std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0,
std::enable_if_t<!std::is_same_v<detail::remove_cvref_t<EFP>, scope_exit<EF>>, int> = 0
>
explicit scope_exit(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>)
explicit scope_exit(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>
|| std::is_nothrow_constructible_v<EF, EFP&>)
: Base(std::forward<EFP>(exitFunction))
{
}

+ 2
- 1
include/scope_fail.h View File

@@ -54,7 +54,8 @@ namespace sr
std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0,
std::enable_if_t<!std::is_same_v<detail::remove_cvref_t<EFP>, scope_fail<EF>>, int> = 0
>
explicit scope_fail(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>)
explicit scope_fail(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>
|| std::is_nothrow_constructible_v<EF, EFP&>)
: Base(std::forward<EFP>(exitFunction))
{
}

+ 2
- 1
include/scope_success.h View File

@@ -61,7 +61,8 @@ namespace sr
std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0,
std::enable_if_t<!std::is_same_v<detail::remove_cvref_t<EFP>, scope_success<EF>>, int> = 0
>
explicit scope_success(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>)
explicit scope_success(EFP&& exitFunction) noexcept(std::is_nothrow_constructible_v<EF, EFP>
|| std::is_nothrow_constructible_v<EF, EFP&>)
: Base(std::forward<EFP>(exitFunction))
{
}

Loading…
Cancel
Save