Skip to content

Commit aac9c06

Browse files
authored
Merge pull request #8 from cschreib/warnings
Fix sign conversion warning and int shift overflow warning
2 parents b735f25 + ea43771 commit aac9c06

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

include/oup/observable_unique_ptr.hpp

+10-5
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,12 @@ class basic_control_block final {
191191
template<typename U, typename P, typename ... Args>
192192
friend auto oup::make_observable(Args&& ... args);
193193

194-
using control_block_storage_type = typename observer_policy_queries<Policy>::control_block_storage_type;
194+
using control_block_storage_type =
195+
typename observer_policy_queries<Policy>::control_block_storage_type;
195196

196197
static constexpr control_block_storage_type highest_bit_mask =
197-
1 << (sizeof(control_block_storage_type) * 8 - 1);
198+
control_block_storage_type{1} <<
199+
control_block_storage_type{sizeof(control_block_storage_type) * 8 - 1};
198200

199201
control_block_storage_type storage = 1;
200202

@@ -916,7 +918,8 @@ class basic_observer_ptr final {
916918

917919
/// Create an observer pointer from an owning pointer.
918920
template<typename U, typename D, typename P, typename enable =
919-
std::enable_if_t<std::is_convertible_v<U*, T*> && std::is_same_v<Policy, typename P::observer_policy>>>
921+
std::enable_if_t<std::is_convertible_v<U*, T*> &&
922+
std::is_same_v<Policy, typename P::observer_policy>>>
920923
basic_observer_ptr(const basic_observable_ptr<U,D,P>& owner) noexcept :
921924
block(owner.block), data(owner.ptr_deleter.data) {
922925
if (block) {
@@ -980,7 +983,8 @@ class basic_observer_ptr final {
980983
* overload resolution if U* is convertible to T*.
981984
*/
982985
template<typename U, typename enable = std::enable_if_t<std::is_convertible_v<U*, T*>>>
983-
basic_observer_ptr(basic_observer_ptr<U,Policy>&& value) noexcept : block(value.block), data(value.data) {
986+
basic_observer_ptr(basic_observer_ptr<U,Policy>&& value) noexcept :
987+
block(value.block), data(value.data) {
984988
value.block = nullptr;
985989
value.data = nullptr;
986990
}
@@ -1011,7 +1015,8 @@ class basic_observer_ptr final {
10111015
* \note This operator only takes part in overload resolution if
10121016
* `U*` is convertible to `T*`.
10131017
*/
1014-
template<typename U, typename D, typename enable = std::enable_if_t<std::is_convertible_v<U*, T*>>>
1018+
template<typename U, typename D, typename enable =
1019+
std::enable_if_t<std::is_convertible_v<U*, T*>>>
10151020
basic_observer_ptr& operator=(const basic_observable_ptr<U,D,Policy>& owner) noexcept {
10161021
set_data_(owner.block, owner.ptr_deleter.data);
10171022

0 commit comments

Comments
 (0)