Author
anonymous
about 6 years ago
Language
C++
Compiler
clang 6.0.0
Options
Warnings
Boost 1.69.0
C++17
no pedantic
Author
anonymous
about 6 years ago
$ clang++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.69.0/clang-6.0.0/include -std=c++17
prog.cc:37:32: error: conversion from 'const trompeloeil::wildcard' to '::trompeloeil::param_list_t<void (std::tuple<int &&>), 0>' (aka 'std::__1::tuple<int &&>') is ambiguous
REQUIRE_CALL(cb, OnInvoked(_))
^
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:34: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^~~~
./tmock.h:4491:75: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^~~~
./tmock.h:4502:88: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
::trompeloeil::call_validator_t<decltype((obj).TROMPELOEIL_CONCAT(trompeloeil_self_, func))>{(obj)} + \
^~~~
./tmock.h:142:57: note: expanded from macro 'TROMPELOEIL_CONCAT'
#define TROMPELOEIL_CONCAT(x, y) TROMPELOEIL_CONCAT_(x, y)
^
./tmock.h:141:40: note: expanded from macro 'TROMPELOEIL_CONCAT_'
#define TROMPELOEIL_CONCAT_(x, y) x ## y
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:728:9: note: candidate constructor [with _Up = <const trompeloeil::wildcard &>, _PackIsTuple = false, $2 = false]
tuple(_Up&&... __u)
^
./tmock.h:944:5: note: candidate function [with T = std::__1::tuple<int &&>, $1 = void]
operator T&&()
^
prog.cc:18:5: note: passing argument to parameter 'p1' here
MAKE_MOCK1(OnInvoked, void(std::tuple<Args&&...>));
^
./tmock.h:4803:35: note: expanded from macro 'MAKE_MOCK1'
#define MAKE_MOCK1 TROMPELOEIL_MAKE_MOCK1
^
./tmock.h:4100:3: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK1'
TROMPELOEIL_MAKE_MOCK_(name,,1, __VA_ARGS__,,)
^
./tmock.h:4320:29: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK_'
trompeloeil_self_ ## name(TROMPELOEIL_PARAM_LIST(num, sig)) constness \
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
./tmock.h:141:35: note: expanded from macro 'TROMPELOEIL_CONCAT_'
#define TROMPELOEIL_CONCAT_(x, y) x ## y
^
<scratch space>:376:1: note: expanded from here
TROMPELOEIL_PARAM_LIST1
^
./tmock.h:252:45: note: expanded from macro 'TROMPELOEIL_PARAM_LIST1'
::trompeloeil::param_list_t<func_type, 0> p1
^
prog.cc:37:32: error: conversion from 'const trompeloeil::wildcard' to '::trompeloeil::param_list_t<void (std::tuple<int &&>), 0>' (aka 'std::__1::tuple<int &&>') is ambiguous
REQUIRE_CALL(cb, OnInvoked(_))
^
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:34: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^~~~
./tmock.h:4491:75: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^~~~
./tmock.h:4504:39: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
decltype((obj).func), \
^~~~
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:728:9: note: candidate constructor [with _Up = <const trompeloeil::wildcard &>, _PackIsTuple = false, $2 = false]
tuple(_Up&&... __u)
^
./tmock.h:944:5: note: candidate function [with T = std::__1::tuple<int &&>, $1 = void]
operator T&&()
^
prog.cc:18:5: note: passing argument to parameter 'p1' here
MAKE_MOCK1(OnInvoked, void(std::tuple<Args&&...>));
^
./tmock.h:4803:35: note: expanded from macro 'MAKE_MOCK1'
#define MAKE_MOCK1 TROMPELOEIL_MAKE_MOCK1
^
./tmock.h:4100:3: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK1'
TROMPELOEIL_MAKE_MOCK_(name,,1, __VA_ARGS__,,)
^
./tmock.h:4293:5: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK_'
TROMPELOEIL_PARAM_LIST(num, sig)) \
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
./tmock.h:141:35: note: expanded from macro 'TROMPELOEIL_CONCAT_'
#define TROMPELOEIL_CONCAT_(x, y) x ## y
^
<scratch space>:354:1: note: expanded from here
TROMPELOEIL_PARAM_LIST1
^
./tmock.h:252:45: note: expanded from macro 'TROMPELOEIL_PARAM_LIST1'
::trompeloeil::param_list_t<func_type, 0> p1
^
prog.cc:37:5: error: expected unqualified-id
REQUIRE_CALL(cb, OnInvoked(_))
^
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:3: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^
./tmock.h:4491:41: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^
./tmock.h:4504:24: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
decltype((obj).func), \
^
prog.cc:37:5: error: expected ';' at end of declaration
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:3: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^
./tmock.h:4491:41: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^
./tmock.h:4504:24: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
decltype((obj).func), \
^
prog.cc:37:5: error: expected unqualified-id
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:3: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^
./tmock.h:4491:41: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^
./tmock.h:4504:44: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
decltype((obj).func), \
^
prog.cc:37:5: error: expected expression
./tmock.h:4879:35: note: expanded from macro 'REQUIRE_CALL'
#define REQUIRE_CALL TROMPELOEIL_REQUIRE_CALL
^
./tmock.h:4488:3: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL'
TROMPELOEIL_REQUIRE_CALL_(obj, func, #obj, #func)
^
./tmock.h:4491:41: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_'
auto TROMPELOEIL_COUNT_ID(call_obj) = TROMPELOEIL_REQUIRE_CALL_OBJ(obj, func,\
^
./tmock.h:4506:71: note: expanded from macro 'TROMPELOEIL_REQUIRE_CALL_OBJ'
{__FILE__, static_cast<unsigned long>(__LINE__), obj_s "." func_s}.func
^
prog.cc:28:23: error: no viable conversion from 'tuple<int &&>' to '::trompeloeil::param_list_t<void (std::tuple<int &&>), 0>' (aka 'std::__1::tuple<int &&>')
OnInvoked(std::forward_as_tuple(args...));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:40:23: note: in instantiation of member function 'MockCallback<void (int)>::MakeBind' requested here
auto publish = cb.MakeBind();
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:620:5: note: candidate constructor not viable: no known conversion from 'tuple<int &&>' to 'const std::__1::tuple<int &&> &' for 1st argument
tuple(tuple const&) = default;
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:621:5: note: candidate constructor not viable: no known conversion from 'tuple<int &&>' to 'std::__1::tuple<int &&> &&' for 1st argument
tuple(tuple&&) = default;
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:646:5: note: candidate template ignored: requirement '_CheckArgsConstructor<true>::template __enable_implicit<int &&&>()' was not satisfied [with _Dummy = true]
tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>::value))
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:728:9: note: candidate template ignored: requirement '_CheckArgsConstructor<sizeof...(_Up) == sizeof...(_Tp) && !false>::template __enable_implicit<std::__1::tuple<int &> >() || _CheckArgsConstructor<_EnableImplicitReducedArityExtension && sizeof...(_Up) < sizeof...(_Tp) && !false>::template __enable_implicit<std::__1::tuple<int &> >()' was not satisfied [with _Up = <std::__1::tuple<int &>>, _PackIsTuple = false]
tuple(_Up&&... __u)
^
/opt/wandbox/clang-6.0.0/include/c++/v1/tuple:827:9: note: candidate template ignored: requirement '_CheckTupleLikeConstructor<__tuple_like_with_size<tuple<int &>, sizeof...(_Tp)>::value && !_PackExpandsToThisTuple<tuple<int &> >::value>::template __enable_implicit<std::__1::tuple<int &> >()' was not satisfied [with _Tuple = std::__1::tuple<int &>]
tuple(_Tuple&& __t) _NOEXCEPT_((is_nothrow_constructible<_BaseT, _Tuple>::value))
^
prog.cc:18:5: note: passing argument to parameter 'p1' here
MAKE_MOCK1(OnInvoked, void(std::tuple<Args&&...>));
^
./tmock.h:4803:35: note: expanded from macro 'MAKE_MOCK1'
#define MAKE_MOCK1 TROMPELOEIL_MAKE_MOCK1
^
./tmock.h:4100:3: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK1'
TROMPELOEIL_MAKE_MOCK_(name,,1, __VA_ARGS__,,)
^
./tmock.h:4293:5: note: expanded from macro 'TROMPELOEIL_MAKE_MOCK_'
TROMPELOEIL_PARAM_LIST(num, sig)) \
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
./tmock.h:141:35: note: expanded from macro 'TROMPELOEIL_CONCAT_'
#define TROMPELOEIL_CONCAT_(x, y) x ## y
^
<scratch space>:354:1: note: expanded from here
TROMPELOEIL_PARAM_LIST1
^
./tmock.h:252:45: note: expanded from macro 'TROMPELOEIL_PARAM_LIST1'
::trompeloeil::param_list_t<func_type, 0> p1
^
7 errors generated.
Exit Code:
1