Well, after a while of faffing about with other things, I thought I’d go through some of the new features of C++17 and just a quick play about I found some very interesting new features.
#include <cstdlib> #include <iostream> #include <string> #include <vector> #include <tuple> using namespace std; int main(int argc, char** argv) { vector<string> strings = { "Hello", "World", "This", "is", "the", "best", "I", "can", "do" }; for (string str: strings) { // I now know cout << str << endl; } cout << strings.size() << endl; // https://www.geeksforgeeks.org/tuples-in-c/ // makes it more interesting with tuple_cat auto mytuple1 = make_tuple("triangle1", 't', 10, 15, 20); // interesting... auto mytuple2 = make_tuple("triangle2", 'b', 1, 2, 3); cout << get<0>(mytuple1) << endl; mytuple1.swap(mytuple2); cout << get<0>(mytuple1) << endl; cout << tuple_size<decltype(mytuple1)>::value << endl; return 0; }
First off the std<vector> initialisation can now be done as it is with Java, but more interestingly is the for loop which works with any class list. That makes life so much easier for C++ handling data.
The next bit was the tuples. For some reason I always associated tuples with a set of 3 items. But after this… This allows for a quick, and maybe dirty way, of avoiding setting up a new class to handle short bursts of data. Very simple.
Now I’m going to play around with some more C++17 features. I may end up moving completely back to C++ and away from Java again.
EDIT:
The output:
Hello World This is the best I can do 9 triangle1 triangle2 5 RUN FINISHED; exit value 0; real time: 0ms; user: 0ms; system: 0ms