Enum problem:
/usr/local/include/ev++.h:79: error: comma at end of enumerator list
That is the single case where we indeed rely on the next c++ standard,
and g++ (and most other compilers) support it, so this is your
problem to
deal with. I won't change correct code because you think you have to
use
compiler switches that are not recommended by the compiler vendor.
Ok. I can't build own C++ project with libev on FreeBSD 7.2 (gcc
4.2.1), because enum contains last comma.
It so is critical to leave the comma?
Warnings generated by -Wextra:
Please read the libev documentation regarding this first.
EV_P_ is "struct ev_loop *loop,". And it generates warning of unused
loop variable.
That's a problem with your compiler (more specifically your
settings) -
the code is valid C++.
If that is indeed a real problem for you, then you are the only one
who
cna fix it, as the problem is outside of libev's code.
I don't understand... The header ev++.h generates warnings and errors
(standard gcc in FreeBSD 7.2). Is it my problem? :-) Do you support
this OS?
Prototype of IOEventManager::Cleanup is "void
(*IOEventManager::Cleanup)()";
That is not part of libev. Since ev++.h works with a lot of toher
packages, this is most likely a bug in your program - see for example
rxvt-unicode for actual uses of ev++.h that are correct.
Example code:
--snip--
#include <ev++.h>
#include <iostream>
const double kTimeout = 1.0;
class Timer {
public:
Timer() {
timer.set<Timer, &Timer::TimerCallback>(this);
timer.set(0., kTimeout);
timer.again();
}
private:
void TimerCallback() {
std::cerr << "Timer works!" << std::endl;
}
ev::timer timer;
};
int main(int argc, char **argv) {
Timer a;
ev::default_loop loop;
loop.loop();
return 0;
}
--snip--
Ubuntu 9.04:
[17:54] devlin:build {4912} uname -a
Linux devlin 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC
2009 i686 GNU/Linux
[17:55] devlin:build {4913} g++ --version
g++ (Ubuntu 4.3.3-5ubuntu4) 4.3.3
[17:55] devlin:build {4914} g++ -o test test.cc -lev -I/usr/local/
include -L/usr/local/lib
/usr/local/include/ev++.h: In static member function ‘static void
ev::base<ev_watcher, watcher>::method_noargs_thunk(ev_loop*,
ev_watcher*, int) [with K = Timer, void (K::* method)() =
&Timer::TimerCallback, ev_watcher = ev_timer, watcher = ev::timer]’:
/usr/local/include/ev++.h:477: instantiated from ‘void
ev::base<ev_watcher, watcher>::set(K*) [with K = Timer, void (K::*
method)() = &Timer::TimerCallback, ev_watcher = ev_timer, watcher =
ev::timer]’
test.cc:9: instantiated from here
/usr/local/include/ev++.h:483: error: must use ‘.*’ or ‘->*’ to call
pointer-to-member function in ‘&Timer::TimerCallback (...)’
Exit 1
--snip--
FreeBSD 7.2:
--snip--
[17:53] bsdman:build {204} uname -a
FreeBSD bsdman.virtualworld.com 7.2-RELEASE FreeBSD 7.2-RELEASE #0:
Fri May 1 08:49:13 UTC 2009 [email protected]:/usr/obj/
usr/src/sys/GENERIC i386
[17:55] bsdman:build {205} g++ --version
g++ (GCC) 4.2.1 20070719 [FreeBSD]
[17:55] bsdman:build {206} g++ -o test test.cc -lev -I/usr/local/
include -L/usr/local/lib
/usr/local/include/ev++.h: In static member function 'static void
ev::base<ev_watcher, watcher>::method_noargs_thunk(ev_loop*,
ev_watcher*, int) [with K = Timer, void (K::* method)() =
&Timer::TimerCallback, ev_watcher = ev_timer, watcher = ev::timer]':
/usr/local/include/ev++.h:477: instantiated from 'void
ev::base<ev_watcher, watcher>::set(K*) [with K = Timer, void (K::*
method)() = &Timer::TimerCallback, ev_watcher = ev_timer, watcher =
ev::timer]'
test.cc:9: instantiated from here
/usr/local/include/ev++.h:483: error: must use '.*' or '->*' to call
pointer-to-member function in '&Timer::TimerCallback (...)'
Exit 1
--snip--
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev