[AGENT++] why is std::list, std::array, or std::queue not used?

J.R. Heisey jrheisey at raytheon.com
Tue Aug 28 20:09:53 CEST 2018


I agree with Claus. The new C++ standards have stabilized the standard template collections. All compilers now have sufficient support available.

Strategy
* You can implement new collections and functions to accept these collections as a new capability.
* You do not need to change the existing collections or functions.
* You can ifdef the new collections and capabilities into the build when the appropriate G++ version or C++ capability is available during the compile.
* You can deprecate the older collections when the new ones are ready.
* When appropriate, instead of completely obsoleting the older collections you can choose to leave the deprecated collections available and only build them with an ifdef option or an older compiler is used.

Thanks,
J.R. Heisey
X2949 AST
+1 408.522.2949


-----Original Message-----
From: AGENTPP [mailto:agentpp-bounces at agentpp.org] On Behalf Of Claus Klein
Sent: Monday, August 27, 2018 1:51 PM
To: Frank Fock <fock at agentpp.com>
Cc: agentpp at agentpp.org
Subject: [External] Re: [AGENT++] why is std::list, std::array, or std::queue not used?


> Am 26.08.2018 um 08:29 schrieb Frank Fock <fock at agentpp.com>:
> 
> Those „standard“ collections have *not* been used because of „portable, readable, and clean code“! The interface of the AGENT++ implements had not been changed for 20 years now. 
Yes, may be, but IMHO its time now to throw away the support for former OS and compilers!

> I am not sure that you could have managed that with std:: implementations during this time frame.
Yes, in the last century, it was true, but the time has changed

> Of course, this might change in the future. Therefore we observe the situation, but it is to early to do it now, because there have not been found any bug/drawback in the current implementations for many years now (besides false alarms).
But the code is not exception save, not easy to read and so not easy to port to new embedded systems!
(The logging is a nightmare, by the way)

For example, MS visual studio V17 too is distributed with python 3.6, clang++, and buildin cmake support.
It supports the full std C++14 as far.

C++17 supports threads, mutex, timer, clock, async, atomics, and  in future threadpool, filesystem, …asio and boost supports all current os and compilers and all the future features of C++20, the next std!

It time to start …

P.S.: There is a nice tool, https://www.freebsd.org/cgi/man.cgi?query=unifdef

I would like to help.

Best regards
Claus

_______________________________________________
AGENTPP mailing list
AGENTPP at agentpp.org
https://oosnmp.net/mailman/listinfo/agentpp


More information about the AGENTPP mailing list