CoCalc Public Filesxeus-cling-cpp17.ipynbOpen with one click!
Author: Harald Schilly
Views : 13

C++ 17 in CoCalc / Ubuntu 20.04

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 [4]:
#include <iostream>
In [8]:
for(auto const& x: a) { std::cout << x << " "; }
input_line_17:2:21: error: use of undeclared identifier 'a' for(auto const& x: a) { ^
Interpreter Error:

for loop

In [6]:
int i; for (i = 0; i < 10; i++) {} int x = i; std::cout << x;
10

cin text input

In [7]:
int y; std::cin >> y; 2 * y + 1
247
In [ ]:
In [ ]: