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

std::enable_if_t<(!std::is_lvalue_reference_v<EFP>) std::enable_if_t<(!std::is_lvalue_reference_v<EFP>)
&& std::is_nothrow_constructible_v<EF, EFP>, int> = 0 && 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_exitfunction(std::move(exitFunction)),
m_execute_on_destruction(true) m_execute_on_destruction(true)
{ {

+ 2
- 1
include/scope_exit.h View File

std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0, 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 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)) : Base(std::forward<EFP>(exitFunction))
{ {
} }

+ 2
- 1
include/scope_fail.h View File

std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0, 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 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)) : Base(std::forward<EFP>(exitFunction))
{ {
} }

+ 2
- 1
include/scope_success.h View File

std::enable_if_t<std::is_constructible_v<EF, EFP>, int> = 0, 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 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)) : Base(std::forward<EFP>(exitFunction))
{ {
} }

Loading…
Cancel
Save