Hi, I am forwarding this discussion to the user list, as I also agree, they should also give their view on this.
Additionally, I've been doing some tests and one downside is that the following classes/functions have been removed in C++17: * std::unary_function and binary_function have been removed. There are some classes which for some reason I don't know inherit from both unary_function and binary_function. This is not really needed, so the solution would be as easy as not using them anymore. * std::random_shuffle has been removed and replaced by std::shuffle. * std::ptr_fun has been removed but can be simply replaced by a lambda. * URNG template has changed. Some minimal effort should be invested in changing this. Good news is that these changes does not affect to any part of the public API, and changes required due to above-described changes are minimal. Thanks, Mario. ________________________________ From: Charlie Black <cbl...@vmware.com> Sent: Tuesday, May 4, 2021 9:33 PM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Re: DISCUSSION: Geode Native C++ 17 adoption Another viewpoint is this is a library and that library can be used by older applications. So being cutting edge on the complier on the library does not increase the adoption of Geode. Agree with Alberto that users mailing lists should be consulted. Charlie From: Alberto Gomez <alberto.go...@est.tech> Date: Tuesday, May 4, 2021 at 11:29 AM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Re: DISCUSSION: Geode Native C++ 17 adoption Hi, Here come my two cents. To me, upgrading to C++17 is a no brainer given that C++11 is quite old and C++17 has lots of new features, performance improvements and bug fixes. The only thing that could prevent us from doing so is having lots of users that are running the native client in a platform that does not have a C++17 compiler. Which leads me to the question: should we move this discussion to the user mailing list? Alberto ________________________________ From: Mario Salazar de Torres <mario.salazar.de.tor...@est.tech> Sent: Tuesday, May 4, 2021 7:45 PM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Re: DISCUSSION: Geode Native C++ 17 adoption Hi everyone, Sorry for the previous email, I did send it before finishing it by mistake. Currently Geode Native uses C++11 standard. It has been quite some time since the standard was released and as of today the latest standard is C++20. As part of another discussion, some users in the community were wondering if it's the time to switch to C++17 in the Geode Native project. So, I am putting a list of pros and cons: Pros: * Several new features added: * C++14 features: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F14%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738349382%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=rs4Pc4zW6bo2oyoaAzPDLA4gUAzm2Q8%2FRNDgLw3YxsY%3D&reserved=0 * C++17 features: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F17%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738349382%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dFzhj5YgERe3wtVAAbH1BukTv7Q5bcNVJNWgfPQfMlY%3D&reserved=0 * Some of the interesting features are: * Function return type deduction. * Improved constexpr functions. * Variable templates. * Generic lambdas. * Lambda capture expressions. * [[deprecated]] * Shared mutexes/locks. * std::make_unique * Nested namespace definitions. * Structured bindings. * variant. * any. * optional. Cons: * Some users might have older compilers which does not implement all C++ 17 features. Thanks, Mario. ________________________________ From: Mario Salazar de Torres <mario.salazar.de.tor...@est.tech> Sent: Tuesday, May 4, 2021 7:34 PM To: dev@geode.apache.org <dev@geode.apache.org> Subject: DISCUSSION: Geode Native C++ 17 adoption Hi everyone, Currently Geode Native uses C++11 standard. It has been quite some time since the standard was released and as of today the latest standard is C++20. As part of another discussion, some users in the community were wondering if it's the time to switch to C++17 in the Geode Native project. So, I am putting a list of pros and cons: Pros: * Several new features added: * C++14 features: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F14%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738359379%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=yeadKm2sq%2BZI3e382PQ3NlpLxyjfH0vCO7WEQyT2W%2FM%3D&reserved=0 * C++17 features: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F17%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738359379%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MaJ77vnuas3whxAzYCMxfFo5b2I5QJzNkSmT5iL%2FTmI%3D&reserved=0 * Some of the interesting features are: * Function return type deduction. * Improved constexpr functions. * Variable templates. - Generic lambdas. - Lambda capture expressions. - [[deprecated]] - Shared mutexes/locks. - std::make_unique C++17 - cppreference.com<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F17%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738359379%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MaJ77vnuas3whxAzYCMxfFo5b2I5QJzNkSmT5iL%2FTmI%3D&reserved=0> This page was last modified on 20 October 2020, at 04:39. This page has been accessed 106,431 times. Privacy policy; About cppreference.com; Disclaimers en.cppreference.com C++14 - cppreference.com<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2F14%23New_language_features&data=04%7C01%7Ccblack%40vmware.com%7C99bf8329d4ed48682b2b08d90f2a8d9f%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637557497738359379%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=yeadKm2sq%2BZI3e382PQ3NlpLxyjfH0vCO7WEQyT2W%2FM%3D&reserved=0> New language features . variable templates; generic lambdas; lambda init-capture new/delete elision relaxed restrictions on constexpr functions; binary literals en.cppreference.com