This (making them macro) was done intentionally. Please, take a look at the
first "fix warnings" commit. If I'll declare them as functions, whose body
is wrapped into #endif (as we've been discussing), in "no-debug" mode (when
ALEX_DEBUG is disabled) we get functions with empty bodies, hence we get
"unused parameters" warning, which leads to error when -Werror key is given
to compiler and that's the very reason why Nikita's first builds failed.


2013/7/11 Vadim Pisarevsky <notifications@github.com>

> In modules/optim/src/lpsolver.cpp:
>
> > @@ -0,0 +1,322 @@
> > +#include "opencv2/ts.hpp"
> > +#include "precomp.hpp"
> > +#include <climits>
> > +#include <algorithm>
> > +#include <cstdarg>
> > +
> > +namespace cv{namespace optim{
> > +using std::vector;
> > +
> > +#ifdef ALEX_DEBUG
>
> the helper printing functions should be made real functions, not macros.
> It's more safe and they are not required to be super-fast
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/Itseez/opencv/pull/1108/files#r5140806>
> .
>