Sharedxeus-cling-cpp17.ipynbOpen in CoCalc
Author: Harald Schilly
Views : 9

C++ 17 in CoCalc

Lambda-capture not only by reference, but also by value!

In [1]:
struct MyObj { int value{ 123 }; auto getValueCopy() { return [*this] { return value; }; } auto getValueRef() { return [this] { return value; }; } };
In [2]:
MyObj mo; auto valueCopy = mo.getValueCopy(); auto valueRef = mo.getValueRef();
In [3]:
mo.value = 31; valueCopy(); // 123
123
In [4]:
valueRef(); // 321
31

Range-based for loop

In [5]:
std::array<int, 5> a{ 1, 2, 3, 4, 5 }; for (int& x : a) { x = 2*x + 1; }
In [6]:
#include <iostream> for(auto const& x: a) { std::cout << x << " "; }
3 5 7 9 11
In [ ]: