Actions
Bug #2329
closedSignal: emitSignal doesn't compile when used with non-zero-argument Signal
Start date:
12/25/2014
Due date:
% Done:
100%
Estimated time:
2.00 h
Description
Snippet to reproduce:
#include <ndn-cxx/util/signal.hpp>
using namespace ndn::util::signal;
class B
{
public:
Signal<B, int> sig;
protected:
DECLARE_SIGNAL_EMIT(sig)
};
class D1 : public B
{
public:
void
f1()
{
this->emitSignal(sig, 1);
}
};
Compiler error:
In file included from /usr/local/include/ndn-cxx/util/signal.hpp:26:0,
from x.cpp:1:
x.cpp: In member function ‘void D1::f1()’:
x.cpp:22:11: error: no matching function for call to ‘D1::emit_sig(int, ndn::util::signal::DummyExtraArg)’
this->emitSignal(sig, 1);
^
x.cpp:22:11: note: candidate is:
x.cpp:11:3: note: template<class ... TArgs> void B::emit_sig(const TArgs& ..., const ndn::util::signal::DummyExtraArg&)
DECLARE_SIGNAL_EMIT(sig)
^
x.cpp:11:3: note: template argument deduction/substitution failed:
x.cpp:22:11: note: cannot convert ‘1’ (type ‘int’) to type ‘const ndn::util::signal::DummyExtraArg&’
this->emitSignal(sig, 1);
^
Actions