> On Dec 25, 2017, at 9:24 AM, Geert Janssens <geert.gnuc...@kobaltwit.be> > wrote: > > Op maandag 25 december 2017 17:34:22 CET schreef Christian Stimming: >> As for the namespace aliases such as "namespace gia = >> gnc::import::aqbanking", those must not appear in header files, but may >> appear in cpp files. However, I didn't like those in general, as it makes >> readability for other people much harder. In terms of mutual readability of >> code, I would rather stick to the plain namespace names and that's it. >> > Ok. I know we are using them in our new c++ code when referencing certain > boost namespaces. And the readability aspect works both ways. If namespaces > get too long, the code becomes hard to read as well. I have found my IDE > (kdevelop currently) quite helpful in deciphering the aliases. I'm not sure > which way I like best currently.
I used them in GncDateTime because the boost::date_time developer got carried away in exactly the way I warned against. Those aliases are in a single implementation file that’s intended to hide the implementation details from the rest of GnuCash. There’s another use of aliases that does belong in headers: Declaring a pseudo-type for container classes. For example, from gnc-backend-sql.hpp: using VersionPair = std::pair<const std::string, unsigned int>; using VersionVec = std::vector<VersionPair>; helps express the container’s intended use (a vector of version tags) and is much more readable in code than writing std::vector<std::pair<const std::string, unsigned int>>> all over the place. Regards, John Ralls _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel