pair noexcept with move operations
Typically done with noexcept. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
37184fd713
commit
4c66b4440a
@ -64,7 +64,7 @@ std::ostream& operator<<(std::ostream& stream, const binaryToStringHelper<T>& bi
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct binaryToStringHelper {
|
struct binaryToStringHelper {
|
||||||
explicit binaryToStringHelper(const Slice<T> myBuf) noexcept : buf_(myBuf) {
|
constexpr binaryToStringHelper(Slice<T>&& myBuf) noexcept : buf_(std::move(myBuf)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// the Slice is stored by value to avoid dangling references, in case we
|
// the Slice is stored by value to avoid dangling references, in case we
|
||||||
@ -95,8 +95,8 @@ struct binaryToStringHelper {
|
|||||||
* the stream throws neither.
|
* the stream throws neither.
|
||||||
*/
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline binaryToStringHelper<T> binaryToString(const Slice<T> sl) noexcept {
|
constexpr binaryToStringHelper<T> binaryToString(Slice<T>&& sl) noexcept {
|
||||||
return binaryToStringHelper<T>(sl);
|
return binaryToStringHelper<T>(std::move(sl));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief indent output for kpsRecursive in \em printStructure() \em .
|
/// @brief indent output for kpsRecursive in \em printStructure() \em .
|
||||||
|
|||||||
@ -11,11 +11,11 @@ using Exiv2::Slice;
|
|||||||
static const unsigned char b[10] = {'a', 'b', 'c', 1, 4, 0, 'e', 136, 0, 'a'};
|
static const unsigned char b[10] = {'a', 'b', 'c', 1, 4, 0, 'e', 136, 0, 'a'};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void checkBinaryToString(const Exiv2::Slice<T> sl, const char* expectedOutput) {
|
void checkBinaryToString(Exiv2::Slice<T>&& sl, const char* expectedOutput) {
|
||||||
// construct the helper manually so that we catch potential invalidation of
|
// construct the helper manually so that we catch potential invalidation of
|
||||||
// temporaries
|
// temporaries
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
const binaryToStringHelper<T> helper = binaryToString(sl);
|
auto helper = binaryToString(std::move(sl));
|
||||||
ss << helper;
|
ss << helper;
|
||||||
|
|
||||||
ASSERT_STREQ(ss.str().c_str(), expectedOutput);
|
ASSERT_STREQ(ss.str().c_str(), expectedOutput);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user