[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++ help for freebayes needed

Hi Matthias,

On Tue, Dec 17, 2019 at 03:45:56PM +0100, Matthias Klumpp wrote:
> I just took a really, really quick look at it (< 5min). Looks like
> there are multiple issues to be solved, for example the IntervalTree
> template accepts two class types (Value and Scalar) and only one is
> provided. That's an upstream bug that upsteam needs to solve, so there
> isn't much you can do. I am very certain this build fails in any
> circumstance, unless IntervalTree is downgraded, maybe.

Thanks a lot for your attempt to help!

> Additionally, in
> https://sources.debian.org/src/htslib/1.10-2/cram/cram_io.h/#L511
> (included by this software) implicitly casting void* to something else
> is illegal in C++. So either `unsigned char *tmp = realloc(b->data,
> len);` has to be changed to `unsigned char *tmp = (unsigned char *)
> realloc(b->data, len);` to be valid in both C and C++ (a clean
> solution, but possibly impractical), or, the better way in this case,
> the C library headers need to be wrapped in a block like this:
> ```
> #ifdef __cplusplus
> extern "C" {
> #endif
> /* include all C headers here */
> #ifdef __cplusplus
> }
> #endif
> ```
> Usually, many C headers already have this, but apparently this one
> hasn't. That may fix this and any other issues as well (I haven't
> tested that though). If it doesn't, the compiler has to be told that
> this instruction is okay to use in the particular header, or the C
> code has to be fixed to accomodate for that.

@Michael Crusoe: Do you have some contact to htslib authors?  May
be its the best to forward this upstream.

Kind regards



Reply to: