<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_test_case_registry_impl.hpp, branch v1.9.2</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>More include simplifications</title>
<updated>2017-02-13T13:12:22+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-02-12T12:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bc68b9f454021455f35fc005e59663a62ed71bca'/>
<id>bc68b9f454021455f35fc005e59663a62ed71bca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Various small string usage performance improvements.</title>
<updated>2017-01-15T09:05:01+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-01-15T08:41:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3b98a0166f7b7196eba2ad518174d1a77165166d'/>
<id>3b98a0166f7b7196eba2ad518174d1a77165166d</id>
<content type='text'>
* Empty strings are now direct constructed as `std::string()`, not as empty string literals.
* `startsWith` and `endsWith` no longer construct new a string. This should be an improvement
for libstdc++ when using older standards, as it doesn't use SSO but COW and thus even short
strings are expensive to first create.
* Various places now use char literal instead of string literals containing single char.
** `startsWith` and `endsWith` now also have overload that takes single char.

Generally the performance improvements under VS2015 are small, as going from short string
to char is mostly meaningless because of SSO (Catch doesn't push string handling that hard)
and previous commit removed most string handling if tests pass, which is the expect case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Empty strings are now direct constructed as `std::string()`, not as empty string literals.
* `startsWith` and `endsWith` no longer construct new a string. This should be an improvement
for libstdc++ when using older standards, as it doesn't use SSO but COW and thus even short
strings are expensive to first create.
* Various places now use char literal instead of string literals containing single char.
** `startsWith` and `endsWith` now also have overload that takes single char.

Generally the performance improvements under VS2015 are small, as going from short string
to char is mostly meaningless because of SSO (Catch doesn't push string handling that hard)
and previous commit removed most string handling if tests pass, which is the expect case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed compile error under VS2015 /c++:latest, caused by using random_shuffle</title>
<updated>2017-01-09T22:29:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-01-07T11:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6991549457a13aa73f4ca59862b794ee7ed5e177'/>
<id>6991549457a13aa73f4ca59862b794ee7ed5e177</id>
<content type='text'>
Now if we detect C++11 compiler, or MSVC in version corresponding to VS2015,
we switch from using `std::random_shuffle` to `std::shuffle`.

`std::random_shuffle` was officially deprecated in C++14, and removed in C++17.

Also removed guarded inclusion of `&lt;random&gt;` header, as there was nothing
in the header that used it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now if we detect C++11 compiler, or MSVC in version corresponding to VS2015,
we switch from using `std::random_shuffle` to `std::shuffle`.

`std::random_shuffle` was officially deprecated in C++14, and removed in C++17.

Also removed guarded inclusion of `&lt;random&gt;` header, as there was nothing
in the header that used it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix random_shuffle narrowing warnings</title>
<updated>2016-10-14T21:06:45+00:00</updated>
<author>
<name>Billy Robert O'Neal III</name>
</author>
<published>2016-10-14T21:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ccf7f2842a356e8901f8e6fe988da2f5a93db329'/>
<id>ccf7f2842a356e8901f8e6fe988da2f5a93db329</id>
<content type='text'>
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.

Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.

Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed RNG issue with pre C++14 compilers</title>
<updated>2016-06-09T18:07:05+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2016-06-09T18:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1aa6c91e6428d3f25bc4329ef6eb7938cd53a157'/>
<id>1aa6c91e6428d3f25bc4329ef6eb7938cd53a157</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use std::shuffle instead of (deprecated) std::random_shuffle if C++14 detected</title>
<updated>2016-06-09T07:15:57+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2016-06-09T07:15:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=be3570ef22a450e7e040913822828468f70d7f81'/>
<id>be3570ef22a450e7e040913822828468f70d7f81</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[#608] Don't use exit() on duplicate test descriptions</title>
<updated>2016-04-01T16:56:51+00:00</updated>
<author>
<name>Robert Dailey</name>
</author>
<published>2016-04-01T16:54:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=86c0ea2999d1b64af2d1771687567bc4bed2d3f9'/>
<id>86c0ea2999d1b64af2d1771687567bc4bed2d3f9</id>
<content type='text'>
Instead of `exit(1)`, it now throws `std::runtime_error` with the details
of the failure. This exception is handled in `run()` at a higher level where
the log is printed to cerr and the test gracefully exits.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of `exit(1)`, it now throws `std::runtime_error` with the details
of the failure. This exception is handled in `run()` at a higher level where
the log is printed to cerr and the test gracefully exits.
</pre>
</div>
</content>
</entry>
<entry>
<title>patch build to include last two fixes</title>
<updated>2015-12-09T18:11:48+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2015-12-09T18:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=981347b6e432007882fd59f9a498c363a3b39ec0'/>
<id>981347b6e432007882fd59f9a498c363a3b39ec0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Initialise m_currentSortOrder</title>
<updated>2015-12-09T06:15:52+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2015-12-09T06:15:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2b688e1cef85025ed71a0dc885118bb2318c21a0'/>
<id>2b688e1cef85025ed71a0dc885118bb2318c21a0</id>
<content type='text'>
- as reported in #545
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- as reported in #545
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed some trailing whitespace</title>
<updated>2015-12-04T10:20:33+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2015-12-04T10:20:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=722315a1f576edb19d0a15a758012e7cffb337fb'/>
<id>722315a1f576edb19d0a15a758012e7cffb337fb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
