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

Reply via email to