Hacker News new | ask | show | jobs
by hans0l074 3274 days ago
A few years ago, I dabbled with the idea of building a "shared clipboard" application across platforms and decided to use Redis - esply the pub/sub mechanism - for this. I ended up discovering and using hiredis[0] (which I can see now was co-authored by antirez as well). I'm curious to know if hiredis can be used from C++ 11 as well.

[0] https://github.com/redis/hiredis

2 comments

As arjo129 says, there is nothing preventing you from using hiredis, provided they don't make use of the few cases where C language features and C++ are no longer compatible, e.g. VLAs or structure initializers.

However, given it is a C API you will get the usual C unsafe code, instead of C++'s improvements regarding type safety.

> provided they don't make use of the few cases where C language features and C++ are no longer compatible, e.g. VLAs or structure initializers

Wouldn't one compile hiredis in C, their app in C++, and link the two together?

In general compiling C code with a C++ compiler isn't the path of least resistance.

Depends how C++ compatible are the headers, as they can't make use of C99 or C11 features that aren't part of ANSI C++17.
True, although most C libraries ought to use those features in the implementation files and not the headers if they want to be used widely.

And even if some things leak into the headers they might be accepted by compiler extensions.

But yes, in general if a c library's headers are hostile to cross-language usage then using it from c++ won't be trivial.

There's nothing stopping you from using hiredis in c++