On Fri, 7 Feb 2025 09:28:10 -0700, Arthur Naseef <artnas...@apache.org> wrote:
| I'm trying to use CLion to work on the activemq-cpp sources, and finding it | is only partially working. The main thing that's missing is navigating | symbols - for example, "find usages" and navigating from a base class to | sub class methods just isn't working at all. | | Looking for the Intellij equivalent of "project structure" but not finding | it... | | If anyone has tips, they would be appreciated. I'm spoiled by Intellij for | Java code. I have never worked with CLion, sorry. But I have used VSCode with the sources, not particularly happily. Activemq-cpp is a "how to pretend we're writing Java in C++" veritable nightmare for anyone with even the remotest familiarity with C++ usage and idioms. OTOH, a seasoned Java programmer may find a lot of the code less than mystifying - I don't know, having stopped doing Java seriously long ago. As a C++ person, I find the Javaisms annoying, to say the least. One very significant issue today is that with any modern C++ compiler (i.e. C++17 onward), the source simply will not compile. This is because std:auto_ptr had been eliminated from the standard. In that sense, the code base is woefully obsolete. Even using C+11 or C++14 compilers, you will get a boatload of warnings. This barrage is all the worse because the code quite unnecessarily uses auto_ptrs to instantiate local variables almost everywhere (see "Javaisms" above.) A global search-and-replace with std::unique_ptr (via, say, a Perl one-liner) leaves only 6 warnings, 5 of which (IIRC) are due to an unnecessary initialization of auto_ptr member variables in objects (with NULL, which does not work with unique_ptr, so just deleting the initialization eliminates the issue). The remaining warning has to do with a much deeper problem (again Java-think induced) involving incomplete types (which unique_ptr is more careful about). Strictly speaking, the test itself is defective, with no good way to fix. I posted about all this more than 4 years ago on this list: https://lists.apache.org/thread/xzwsfb7b236ypr1qpfh2jx6o56b6zd53 Is there much hope in truly modernizing this code base? E.g., removing the dependency on decaf and the APR library? That was my aim when I loaded the sources into VSCode. My summary conclusion is that any such effort will be major surgery, as the formidable labyrinth of dependencies will need the patience of Job to untangle. But if you're up for it, then more power to you! Good luck! --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org For additional commands, e-mail: dev-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact