view: return unsigned types for size

This commit is contained in:
Danny Robson 2018-01-10 18:49:00 +11:00
parent 2840810f64
commit ad02c94511
3 changed files with 11 additions and 4 deletions

View File

@ -360,7 +360,7 @@ namespace util::format {
if (spec.precision >= 0) { if (spec.precision >= 0) {
std::copy_n ( std::copy_n (
std::begin (val), std::begin (val),
util::min (spec.precision, val.size ()), util::min (spec.precision, static_cast<int> (val.size ())),
std::ostream_iterator<char> (os) std::ostream_iterator<char> (os)
); );
return os; return os;

View File

@ -11,7 +11,7 @@ main (int, char**)
util::TAP::logger tap; util::TAP::logger tap;
tap.expect_eq ( tap.expect_eq (
std::size (util::make_view ("foo")), 3, std::size (util::make_view ("foo")), 3u,
"character array view does not include trailing null" "character array view does not include trailing null"
); );

View File

@ -11,7 +11,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* *
* Copyright 2015-2017 Danny Robson <danny@nerdcruft.net> * Copyright 2015-2018 Danny Robson <danny@nerdcruft.net>
*/ */
@ -228,10 +228,17 @@ namespace util {
} }
//--------------------------------------------------------------------- //---------------------------------------------------------------------
// the return type of size _should_ be whatever std::distance returns,
// or something else that makes sense for the iterators we've been
// handed.
//
// but it's a pain in the arse to use sizes that aren't unsigned given
// that other libraries need to compare sizes pretty often and
// everything else in the world tends to be unsigned.
constexpr auto constexpr auto
size (void) const noexcept size (void) const noexcept
{ {
return std::distance (m_begin, m_end); return static_cast<std::size_t> (std::distance (m_begin, m_end));
} }
//--------------------------------------------------------------------- //---------------------------------------------------------------------