mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-20 12:26:10 +01:00
Added 3rd party bug to documentation
This commit is contained in:
parent
1ff56301a1
commit
a38ccec33a
@ -73,6 +73,11 @@ TEST_CASE("No longer a syntax error with VC12") {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Visual Studio 2003 -- Syntax error caused by improperly expanded `__LINE__` macro
|
||||||
|
Older version of Visual Studio can have trouble compiling Catch, not expanding the `__LINE__` macro properly when recompiling the test binary. This is caused by Edit and Continue being on.
|
||||||
|
|
||||||
|
A workaround is to turn off Edit and Continue when compiling the test binary.
|
||||||
|
|
||||||
### Clang/G++ -- skipping leaf sections after an exception
|
### Clang/G++ -- skipping leaf sections after an exception
|
||||||
Some versions of `libc++` and `libstdc++` (or their runtimes) have a bug with `std::uncaught_exception()` getting stuck returning `true` after rethrow, even if there are no active exceptions. One such case is this snippet, which skipped the sections "a" and "b", when compiled against `libcxxrt` from master
|
Some versions of `libc++` and `libstdc++` (or their runtimes) have a bug with `std::uncaught_exception()` getting stuck returning `true` after rethrow, even if there are no active exceptions. One such case is this snippet, which skipped the sections "a" and "b", when compiled against `libcxxrt` from master
|
||||||
```cpp
|
```cpp
|
||||||
|
41
include/internal/catch_meta.hpp
Normal file
41
include/internal/catch_meta.hpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 08/02/2017.
|
||||||
|
*
|
||||||
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_META_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_META_HPP_INCLUDED
|
||||||
|
|
||||||
|
#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
|
||||||
|
#include <type_traits>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
using add_lvalue_reference = std::add_lvalue_reference<T>;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct add_l_value_reference {
|
||||||
|
typedef T& type;
|
||||||
|
};
|
||||||
|
template <typename T>
|
||||||
|
struct add_l_value_reference<T&> {
|
||||||
|
typedef T& type;
|
||||||
|
};
|
||||||
|
template <typename T>
|
||||||
|
struct add_l_value_reference<T&&> {
|
||||||
|
typedef T& type;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_META_HPP_INCLUDED
|
Loading…
Reference in New Issue
Block a user