On Aug 28, 2009, at 12:42 PM, Marc Lehmann wrote:
On Fri, Aug 28, 2009 at 12:11:39PM +0400, Konstantin Lepa <[email protected]
> wrote:
1. Fixed warnings for compilation with -pedantic flag.
ev++.h is written in C++, not in any other language. If you compile
ev++.h
with any othe rlanguage, that's your problem and doesn't make ev++.h
unusable as you claim.
I use C++ only (freebsd 7.2). I'd prefer to compile my source code
with -pedantic and -Wextra
flag. But when i'm using ev++.h, then g++ throws warnings for unused
function parameters and the error for a comma after a last enum element.
It annoys and disturbs me to find real problems.
[14:18] bsdman:build {164} 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
[14:18] bsdman:build {165} g++ --version
g++ (GCC) 4.2.1 20070719 [FreeBSD]
Enum problem:
/usr/local/include/ev++.h:79: error: comma at end of enumerator list
2. Fixed errors in template member functions.
- static void method_thunk (EV_P_ ev_watcher *w, int revents)
+ static void method_thunk (struct ev_loop *, ev_watcher *w, int
revents)
sorry, your patch is completely bogus. you need to explain why
warnings
make ev++.h unusable, or why your compiler doesn't support macro
expansion.
Warnings generated by -Wextra:
--g++ output--
/usr/local/include/ev++.h: At global scope:
/usr/local/include/ev++.h:481: warning: unused parameter 'loop'
/usr/local/include/ev++.h:481: warning: unused parameter 'revents'
--end output--
C++ permits to declare function without parameter names for disabling
the warning. For example:
int Example(int a, int /*unused*/) {
std::cout << a << std::endl;
}
EV_P_ is "struct ev_loop *loop,". And it generates warning of unused
loop variable.
My code "cleanupTimer_.set<IOEventManager,
&IOEventManager::Cleanup>(this);" generated next error:
--g++ output--
/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 = mimic::IOEventManager, void (K::* method)
() = &mimic::IOEventManager::Cleanup, 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 =
mimic::IOEventManager, void (K::* method)() =
&mimic::IOEventManager::Cleanup, ev_watcher = ev_timer, watcher =
ev::timer]'
/home/badgopher/work/mimic/src/mimic/herz/io-event-manager.cpp:17:
instantiated from here
/usr/local/include/ev++.h:483: error: must use '.*' or '->*' to call
pointer-to-member function in '&mimic::IOEventManager::Cleanup (...)'
---end output--
Prototype of IOEventManager::Cleanup is "void
(*IOEventManager::Cleanup)()";
P.S. Sorry for my bad english.
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev