forked from OSchip/llvm-project
[libcxx] [test] Fix MSVC warning C4244 "conversion from 'X' to 'Y', possible loss of data", part 3/7.
Add static_cast<short> when constructing pair<Whatever, short> from (Something, int). Fixes D27540. llvm-svn: 289107
This commit is contained in:
parent
c255fa5e93
commit
7abade3769
|
@ -37,22 +37,22 @@ int main()
|
|||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
C::const_iterator e = c.end();
|
||||
R r = c.insert(e, P(3.5, 3));
|
||||
R r = c.insert(e, P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(c.end(), P(3.5, 4));
|
||||
r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(c.end(), P(4.5, 4));
|
||||
r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(5.5, 4));
|
||||
r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
@ -90,22 +90,22 @@ int main()
|
|||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
C::const_iterator e = c.end();
|
||||
R r = c.insert(e, P(3.5, 3));
|
||||
R r = c.insert(e, P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(c.end(), P(3.5, 4));
|
||||
r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(c.end(), P(4.5, 4));
|
||||
r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(5.5, 4));
|
||||
r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
|
|
@ -32,25 +32,25 @@ int main()
|
|||
typedef std::pair<C::iterator, bool> R;
|
||||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
R r = c.insert(P(3.5, 3));
|
||||
R r = c.insert(P(3.5, static_cast<short>(3)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 1);
|
||||
assert(r.first->first == 3.5);
|
||||
assert(r.first->second == 3);
|
||||
|
||||
r = c.insert(P(3.5, 4));
|
||||
r = c.insert(P(3.5, static_cast<short>(4)));
|
||||
assert(!r.second);
|
||||
assert(c.size() == 1);
|
||||
assert(r.first->first == 3.5);
|
||||
assert(r.first->second == 3);
|
||||
|
||||
r = c.insert(P(4.5, 4));
|
||||
r = c.insert(P(4.5, static_cast<short>(4)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 2);
|
||||
assert(r.first->first == 4.5);
|
||||
assert(r.first->second == 4);
|
||||
|
||||
r = c.insert(P(5.5, 4));
|
||||
r = c.insert(P(5.5, static_cast<short>(4)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 3);
|
||||
assert(r.first->first == 5.5);
|
||||
|
@ -91,25 +91,25 @@ int main()
|
|||
typedef std::pair<C::iterator, bool> R;
|
||||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
R r = c.insert(P(3.5, 3));
|
||||
R r = c.insert(P(3.5, static_cast<short>(3)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 1);
|
||||
assert(r.first->first == 3.5);
|
||||
assert(r.first->second == 3);
|
||||
|
||||
r = c.insert(P(3.5, 4));
|
||||
r = c.insert(P(3.5, static_cast<short>(4)));
|
||||
assert(!r.second);
|
||||
assert(c.size() == 1);
|
||||
assert(r.first->first == 3.5);
|
||||
assert(r.first->second == 3);
|
||||
|
||||
r = c.insert(P(4.5, 4));
|
||||
r = c.insert(P(4.5, static_cast<short>(4)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 2);
|
||||
assert(r.first->first == 4.5);
|
||||
assert(r.first->second == 4);
|
||||
|
||||
r = c.insert(P(5.5, 4));
|
||||
r = c.insert(P(5.5, static_cast<short>(4)));
|
||||
assert(r.second);
|
||||
assert(c.size() == 3);
|
||||
assert(r.first->first == 5.5);
|
||||
|
|
|
@ -37,22 +37,22 @@ int main()
|
|||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
C::const_iterator e = c.end();
|
||||
R r = c.insert(e, P(3.5, 3));
|
||||
R r = c.insert(e, P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(r, P(3.5, 4));
|
||||
r = c.insert(r, P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(4.5, 4));
|
||||
r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(5.5, 4));
|
||||
r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 4);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
@ -90,22 +90,22 @@ int main()
|
|||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
C::const_iterator e = c.end();
|
||||
R r = c.insert(e, P(3.5, 3));
|
||||
R r = c.insert(e, P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(r, P(3.5, 4));
|
||||
r = c.insert(r, P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(4.5, 4));
|
||||
r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(c.end(), P(5.5, 4));
|
||||
r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 4);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
|
|
@ -32,22 +32,22 @@ int main()
|
|||
typedef C::iterator R;
|
||||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
R r = c.insert(P(3.5, 3));
|
||||
R r = c.insert(P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(P(3.5, 4));
|
||||
r = c.insert(P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(P(4.5, 4));
|
||||
r = c.insert(P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(P(5.5, 4));
|
||||
r = c.insert(P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 4);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
@ -83,22 +83,22 @@ int main()
|
|||
typedef C::iterator R;
|
||||
typedef std::pair<double, short> P;
|
||||
C c;
|
||||
R r = c.insert(P(3.5, 3));
|
||||
R r = c.insert(P(3.5, static_cast<short>(3)));
|
||||
assert(c.size() == 1);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 3);
|
||||
|
||||
r = c.insert(P(3.5, 4));
|
||||
r = c.insert(P(3.5, static_cast<short>(4)));
|
||||
assert(c.size() == 2);
|
||||
assert(r->first == 3.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(P(4.5, 4));
|
||||
r = c.insert(P(4.5, static_cast<short>(4)));
|
||||
assert(c.size() == 3);
|
||||
assert(r->first == 4.5);
|
||||
assert(r->second == 4);
|
||||
|
||||
r = c.insert(P(5.5, 4));
|
||||
r = c.insert(P(5.5, static_cast<short>(4)));
|
||||
assert(c.size() == 4);
|
||||
assert(r->first == 5.5);
|
||||
assert(r->second == 4);
|
||||
|
|
|
@ -24,7 +24,7 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
const P p(3, 4);
|
||||
const P p(3, static_cast<short>(4));
|
||||
assert(std::get<0>(p) == 3);
|
||||
assert(std::get<1>(p) == 4);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ int main()
|
|||
#if TEST_STD_VER > 11
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
constexpr P p1(3, 4);
|
||||
constexpr P p1(3, static_cast<short>(4));
|
||||
static_assert(std::get<0>(p1) == 3, "");
|
||||
static_assert(std::get<1>(p1) == 4, "");
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<std::unique_ptr<int>, short> P;
|
||||
const P p(std::unique_ptr<int>(new int(3)), 4);
|
||||
const P p(std::unique_ptr<int>(new int(3)), static_cast<short>(4));
|
||||
static_assert(std::is_same<const std::unique_ptr<int>&&, decltype(std::get<0>(std::move(p)))>::value, "");
|
||||
static_assert(noexcept(std::get<0>(std::move(p))), "");
|
||||
const std::unique_ptr<int>&& ptr = std::get<0>(std::move(p));
|
||||
|
@ -58,7 +58,7 @@ int main()
|
|||
#if TEST_STD_VER > 11
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
constexpr const P p1(3, 4);
|
||||
constexpr const P p1(3, static_cast<short>(4));
|
||||
static_assert(std::get<0>(std::move(p1)) == 3, "");
|
||||
static_assert(std::get<1>(std::move(p1)) == 4, "");
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p(3, 4);
|
||||
P p(3, static_cast<short>(4));
|
||||
assert(std::get<0>(p) == 3);
|
||||
assert(std::get<1>(p) == 4);
|
||||
std::get<0>(p) = 5;
|
||||
|
|
|
@ -25,7 +25,7 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<std::unique_ptr<int>, short> P;
|
||||
P p(std::unique_ptr<int>(new int(3)), 4);
|
||||
P p(std::unique_ptr<int>(new int(3)), static_cast<short>(4));
|
||||
std::unique_ptr<int> ptr = std::get<0>(std::move(p));
|
||||
assert(*ptr == 3);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ int main()
|
|||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
typedef std::pair<double, long> P2;
|
||||
P1 p1(3, 4);
|
||||
P1 p1(3, static_cast<short>(4));
|
||||
P2 p2;
|
||||
p2 = p1;
|
||||
assert(p2.first == 3);
|
||||
|
|
|
@ -34,7 +34,7 @@ int main()
|
|||
{
|
||||
typedef std::pair<std::unique_ptr<Derived>, short> P1;
|
||||
typedef std::pair<std::unique_ptr<Base>, long> P2;
|
||||
P1 p1(std::unique_ptr<Derived>(), 4);
|
||||
P1 p1(std::unique_ptr<Derived>(), static_cast<short>(4));
|
||||
P2 p2;
|
||||
p2 = std::move(p1);
|
||||
assert(p2.first == nullptr);
|
||||
|
|
|
@ -21,7 +21,7 @@ int main()
|
|||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
typedef std::pair<double, long> P2;
|
||||
const P1 p1(3, 4);
|
||||
const P1 p1(3, static_cast<short>(4));
|
||||
const P2 p2 = p1;
|
||||
assert(p2.first == 3);
|
||||
assert(p2.second == 4);
|
||||
|
|
|
@ -22,7 +22,7 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
P1 p1(3, 4);
|
||||
P1 p1(3, static_cast<short>(4));
|
||||
P1 p2 = p1;
|
||||
assert(p2.first == 3);
|
||||
assert(p2.second == 4);
|
||||
|
@ -30,7 +30,7 @@ int main()
|
|||
#if TEST_STD_VER > 11
|
||||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
constexpr P1 p1(3, 4);
|
||||
constexpr P1 p1(3, static_cast<short>(4));
|
||||
constexpr P1 p2 = p1;
|
||||
static_assert(p2.first == 3, "");
|
||||
static_assert(p2.second == 4, "");
|
||||
|
|
|
@ -31,7 +31,7 @@ int main()
|
|||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
static_assert(std::is_move_constructible<P1>::value, "");
|
||||
P1 p1(3, 4);
|
||||
P1 p1(3, static_cast<short>(4));
|
||||
P1 p2 = std::move(p1);
|
||||
assert(p2.first == 3);
|
||||
assert(p2.second == 4);
|
||||
|
|
|
@ -29,8 +29,8 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
P1 p1(3, 4);
|
||||
P1 p2(5, 6);
|
||||
P1 p1(3, static_cast<short>(4));
|
||||
P1 p2(5, static_cast<short>(6));
|
||||
p1.swap(p2);
|
||||
assert(p1.first == 5);
|
||||
assert(p1.second == 6);
|
||||
|
|
|
@ -27,8 +27,8 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p1(3, 4);
|
||||
P p2(3, 4);
|
||||
P p1(3, static_cast<short>(4));
|
||||
P p2(3, static_cast<short>(4));
|
||||
assert( (p1 == p2));
|
||||
assert(!(p1 != p2));
|
||||
assert(!(p1 < p2));
|
||||
|
@ -38,8 +38,8 @@ int main()
|
|||
}
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p1(2, 4);
|
||||
P p2(3, 4);
|
||||
P p1(2, static_cast<short>(4));
|
||||
P p2(3, static_cast<short>(4));
|
||||
assert(!(p1 == p2));
|
||||
assert( (p1 != p2));
|
||||
assert( (p1 < p2));
|
||||
|
@ -49,8 +49,8 @@ int main()
|
|||
}
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p1(3, 2);
|
||||
P p2(3, 4);
|
||||
P p1(3, static_cast<short>(2));
|
||||
P p2(3, static_cast<short>(4));
|
||||
assert(!(p1 == p2));
|
||||
assert( (p1 != p2));
|
||||
assert( (p1 < p2));
|
||||
|
@ -60,8 +60,8 @@ int main()
|
|||
}
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p1(3, 4);
|
||||
P p2(2, 4);
|
||||
P p1(3, static_cast<short>(4));
|
||||
P p2(2, static_cast<short>(4));
|
||||
assert(!(p1 == p2));
|
||||
assert( (p1 != p2));
|
||||
assert(!(p1 < p2));
|
||||
|
@ -71,8 +71,8 @@ int main()
|
|||
}
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
P p1(3, 4);
|
||||
P p2(3, 2);
|
||||
P p1(3, static_cast<short>(4));
|
||||
P p2(3, static_cast<short>(2));
|
||||
assert(!(p1 == p2));
|
||||
assert( (p1 != p2));
|
||||
assert(!(p1 < p2));
|
||||
|
@ -84,8 +84,8 @@ int main()
|
|||
#if TEST_STD_VER > 11
|
||||
{
|
||||
typedef std::pair<int, short> P;
|
||||
constexpr P p1(3, 4);
|
||||
constexpr P p2(3, 2);
|
||||
constexpr P p1(3, static_cast<short>(4));
|
||||
constexpr P p2(3, static_cast<short>(2));
|
||||
static_assert(!(p1 == p2), "");
|
||||
static_assert( (p1 != p2), "");
|
||||
static_assert(!(p1 < p2), "");
|
||||
|
|
|
@ -20,8 +20,8 @@ int main()
|
|||
{
|
||||
{
|
||||
typedef std::pair<int, short> P1;
|
||||
P1 p1(3, 4);
|
||||
P1 p2(5, 6);
|
||||
P1 p1(3, static_cast<short>(4));
|
||||
P1 p2(5, static_cast<short>(6));
|
||||
swap(p1, p2);
|
||||
assert(p1.first == 5);
|
||||
assert(p1.second == 6);
|
||||
|
|
Loading…
Reference in New Issue