forked from premiere/premiere-libtorrent
added add_torrent_params.cpp and moved is_nothrow asserts to cpp files (#2059)
This commit is contained in:
parent
905690a1a6
commit
e38887cb3c
|
@ -123,6 +123,7 @@ set(sources
|
|||
xml_parse
|
||||
version
|
||||
ffs
|
||||
add_torrent_params
|
||||
|
||||
# -- extensions --
|
||||
ut_pex
|
||||
|
|
1
Jamfile
1
Jamfile
|
@ -666,6 +666,7 @@ SOURCES =
|
|||
proxy_settings
|
||||
file_progress
|
||||
ffs
|
||||
add_torrent_params
|
||||
|
||||
# -- extensions --
|
||||
ut_pex
|
||||
|
|
|
@ -85,12 +85,12 @@ namespace libtorrent {
|
|||
// The constructor can be used to initialize the storage constructor,
|
||||
// which determines the storage mechanism for the downloaded or seeding
|
||||
// data for the torrent. For more information, see the ``storage`` field.
|
||||
explicit add_torrent_params(storage_constructor_type sc = default_storage_constructor)
|
||||
: storage(storage_constructor_type(sc)) {}
|
||||
add_torrent_params(add_torrent_params&&) noexcept = default;
|
||||
add_torrent_params& operator=(add_torrent_params&&) noexcept = default;
|
||||
add_torrent_params(add_torrent_params const&) = default;
|
||||
add_torrent_params& operator=(add_torrent_params const&) = default;
|
||||
explicit add_torrent_params(storage_constructor_type sc = default_storage_constructor);
|
||||
add_torrent_params(add_torrent_params&&) noexcept;
|
||||
// TODO: GCC did not make std::string nothrow move-assignable
|
||||
add_torrent_params& operator=(add_torrent_params&&);
|
||||
add_torrent_params(add_torrent_params const&);
|
||||
add_torrent_params& operator=(add_torrent_params const&);
|
||||
|
||||
// values for the ``flags`` field
|
||||
enum flags_t : std::uint64_t
|
||||
|
@ -524,19 +524,6 @@ namespace libtorrent {
|
|||
#endif
|
||||
|
||||
};
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<add_torrent_params>::value
|
||||
, "should be nothrow move constructible");
|
||||
|
||||
// TODO: pre C++17, GCC and msvc does not make std::string nothrow move
|
||||
// assignable, which means no type containing a string will be nothrow move
|
||||
// assignable by default either
|
||||
// static_assert(std::is_nothrow_move_assignable<add_torrent_params>::value
|
||||
// , "should be nothrow move assignable");
|
||||
|
||||
// TODO: it would be nice if this was nothrow default constructible
|
||||
// static_assert(std::is_nothrow_default_constructible<add_torrent_params>::value
|
||||
// , "should be nothrow default constructible");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -256,13 +256,6 @@ namespace libtorrent {
|
|||
aux::unique_ptr<std::uint32_t[]> m_buf;
|
||||
};
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<bitfield>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<bitfield>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<bitfield>::value
|
||||
, "should be nothrow default constructible");
|
||||
|
||||
template <typename IndexType>
|
||||
struct typed_bitfield : bitfield
|
||||
{
|
||||
|
@ -301,14 +294,6 @@ namespace libtorrent {
|
|||
|
||||
IndexType end_index() const { return IndexType(this->size()); }
|
||||
};
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<typed_bitfield<int>>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<typed_bitfield<int>>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<typed_bitfield<int>>::value
|
||||
, "should be nothrow default constructible");
|
||||
|
||||
}
|
||||
|
||||
#endif // TORRENT_BITFIELD_HPP_INCLUDED
|
||||
|
|
|
@ -258,4 +258,3 @@ namespace libtorrent {
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -276,13 +276,6 @@ namespace aux {
|
|||
// peer IDs, node IDs etc.
|
||||
using sha1_hash = digest32<160>;
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<sha1_hash>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<sha1_hash>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<sha1_hash>::value
|
||||
, "should be nothrow default constructible");
|
||||
|
||||
#if TORRENT_USE_IOSTREAM
|
||||
|
||||
// print a sha1_hash object to an ostream as 40 hexadecimal digits
|
||||
|
|
|
@ -1312,13 +1312,6 @@ namespace libtorrent { namespace aux {
|
|||
|
||||
std::weak_ptr<torrent> m_torrent;
|
||||
};
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<torrent_handle>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<torrent_handle>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<torrent_handle>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
||||
namespace std
|
||||
|
|
|
@ -560,13 +560,6 @@ namespace libtorrent {
|
|||
seconds finished_duration;
|
||||
seconds seeding_duration;
|
||||
};
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<torrent_status>::value
|
||||
, "should be nothrow move constructible");
|
||||
// static_assert(std::is_nothrow_move_assignable<torrent_status>::value
|
||||
// , "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<torrent_status>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
||||
namespace std
|
||||
|
|
|
@ -160,6 +160,7 @@ libtorrent_rasterbar_la_SOURCES = \
|
|||
version.cpp \
|
||||
file_progress.cpp \
|
||||
ffs.cpp \
|
||||
add_torrent_params.cpp \
|
||||
\
|
||||
$(KADEMLIA_SOURCES) \
|
||||
\
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2017, Arvid Norberg, Alden Torres
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "libtorrent/add_torrent_params.hpp"
|
||||
|
||||
namespace libtorrent {
|
||||
|
||||
add_torrent_params::add_torrent_params(storage_constructor_type sc)
|
||||
: storage(storage_constructor_type(sc)) {}
|
||||
add_torrent_params::add_torrent_params(add_torrent_params&&) noexcept = default;
|
||||
add_torrent_params& add_torrent_params::operator=(add_torrent_params&&) = default;
|
||||
add_torrent_params::add_torrent_params(add_torrent_params const&) = default;
|
||||
add_torrent_params& add_torrent_params::operator=(add_torrent_params const&) = default;
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<add_torrent_params>::value
|
||||
, "should be nothrow move constructible");
|
||||
|
||||
// TODO: pre C++17, GCC and msvc does not make std::string nothrow move
|
||||
// assignable, which means no type containing a string will be nothrow move
|
||||
// assignable by default either
|
||||
// static_assert(std::is_nothrow_move_assignable<add_torrent_params>::value
|
||||
// , "should be nothrow move assignable");
|
||||
|
||||
// TODO: it would be nice if this was nothrow default constructible
|
||||
// static_assert(std::is_nothrow_default_constructible<add_torrent_params>::value
|
||||
// , "should be nothrow default constructible");
|
||||
}
|
|
@ -213,4 +213,18 @@ namespace libtorrent {
|
|||
? (num - 1) * 32 + ext
|
||||
: size - (aux::count_trailing_ones({&m_buf[1], std::size_t(num - 1)}) + ext);
|
||||
}
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<bitfield>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<bitfield>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<bitfield>::value
|
||||
, "should be nothrow default constructible");
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<typed_bitfield<int>>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<typed_bitfield<int>>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<typed_bitfield<int>>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
|
|
@ -137,4 +137,11 @@ namespace aux {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<sha1_hash>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<sha1_hash>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<sha1_hash>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
|
|
@ -750,4 +750,11 @@ namespace libtorrent {
|
|||
// for expired weak_ptrs. So, we're left with a hack
|
||||
return std::size_t(*reinterpret_cast<void* const*>(&th.m_torrent));
|
||||
}
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<torrent_handle>::value
|
||||
, "should be nothrow move constructible");
|
||||
static_assert(std::is_nothrow_move_assignable<torrent_handle>::value
|
||||
, "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<torrent_handle>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
|
|
@ -39,10 +39,18 @@ namespace libtorrent {
|
|||
file_index_t constexpr torrent_status::error_file_ssl_ctx;
|
||||
file_index_t constexpr torrent_status::error_file_metadata;
|
||||
file_index_t constexpr torrent_status::error_file_exception;
|
||||
|
||||
torrent_status::torrent_status() noexcept {}
|
||||
torrent_status::~torrent_status() = default;
|
||||
torrent_status::torrent_status(torrent_status const&) = default;
|
||||
torrent_status& torrent_status::operator=(torrent_status const&) = default;
|
||||
torrent_status::torrent_status(torrent_status&&) noexcept = default;
|
||||
torrent_status& torrent_status::operator=(torrent_status&&) = default;
|
||||
|
||||
static_assert(std::is_nothrow_move_constructible<torrent_status>::value
|
||||
, "should be nothrow move constructible");
|
||||
// static_assert(std::is_nothrow_move_assignable<torrent_status>::value
|
||||
// , "should be nothrow move assignable");
|
||||
static_assert(std::is_nothrow_default_constructible<torrent_status>::value
|
||||
, "should be nothrow default constructible");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue