Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

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

tmock.h

$ 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