Using types with default template arguments TEMPLATE_PRODUCT_TEST_CASE_SIG fails compiling on clang
- Dominant language
- C++
- Stars
- 21.5k
- Forks
- 3.5k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 2
Description
**Describe the bug**
I've compiled a minimal example. https://godbolt.org/z/MGnzaxEf7
There you can see, that the default argument of ``bad_testable`` let clang (and on my local machine clangCl too) fail to compile the code. When you remove ``bad_testable`` from the test case, it compiles fine.
**Expected behavior**
Well, it should compile and behave as on gcc and msvc.
**Reproduction steps**
```cpp
#include
#define CATCH_CONFIG_MAIN
#include
//#include
template
struct good_testable : std::bool_constant
{
};
template
struct bad_testable : std::bool_constant
{
};
TEMPLATE_PRODUCT_TEST_CASE_SIG
(
"test",
"[test]",
((bool V), V),
(good_testable, bad_testable),
(
(true),
(false)
)
)
{
REQUIRE(TestType::value);
}
```
**Platform information:**
- OS: Windows and on what ever machine compiler-explorer runs
- Compiler+version: clang and clangCl (all tested versions)
- Catch version: catch2 (up2date)
**Additional context**
Nothing to add.
Contributor guide
Assessment
This issue has not been assessed yet.