Smallest values for int8_t and int64_t
<p>With regard to to those definitions found in <code>stdint.h</code>, I wish to test a function for converting vectors of <code>int8_t</code> or vectors of <code>int64_t</code> to vectors of <code>std::string</code>.</p>

<p>Here are my tests:</p>

<pre><code>TEST(TestAlgorithms, toStringForInt8)
{
    std::vector&lt;int8_t&gt; input = boost::assign::list_of(-128)(0)(127);
    Container container(input);
    EXPECT_TRUE(boost::apply_visitor(ToString(),container) == boost::assign::list_of("-128")("0")("127"));
}

TEST(TestAlgorithms, toStringForInt64)
{
    std::vector&lt;int64_t&gt; input = boost::assign::list_of(-9223372036854775808)(0)(9223372036854775807);
    Container container(input);
    EXPECT_TRUE(boost::apply_visitor(ToString(),container) == boost::assign::list_of("-9223372036854775808")("0")("9223372036854775807"));
}
</code></pre>

<p>However, I am getting a warning in visual studio for the line:</p>

<pre><code>std::vector&lt;int64_t&gt; input = boost::assign::list_of(-9223372036854775808)(0)(9223372036854775807);
</code></pre>

<p>as follows:</p>

<pre><code>warning C4146: unary minus operator applied to unsigned type, result still unsigned
</code></pre>

<p>If I change -9223372036854775808 to -9223372036854775807, the warning disappears.</p>

<p>What is the issue here? With regard to my original code, the test is passing.</p>
