Код: Выделить всё
#include
#include
template class AssertionMatcher final {
public:
explicit AssertionMatcher(const ActualType &actual): _actual(std::move(actual)) {}
template auto contains(const ContainedType &contained) const -> void {
std::cout void {
std::cout AssertionMatcher {
return AssertionMatcher(actual);
}
< /code>
И я называю это таким образом: < /p>
int main() {
const std::vector container({1, 2, 3});
assertThat(container).contains(2);
}
образной. Но этот код не будет компилироваться (GCC 14 из онлайн -компилятора): < /p>
: In instantiation of 'AssertionMatcher assertThat(const ActualType&) [with ActualType = std::vector]':
:30:22: required from here
30 | (void) assertThat(container);
| ~~~~~~~~~~^~~~~~~~~~~
:25:12: error: too many initializers for 'AssertionMatcher'
25 | return AssertionMatcher(actual);
| ^~~~~~~~~~~~~~~~~~~~~~~~
< /code>
У меня закончились идеи, как это исправить. У вас есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-error
Мобильная версия