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
