function<double(double)> -- это тип функции, которая принимает один параметр double и возвращает double.function<double(double)> f;
f = [](double x){ return x * 2; };
f(5); //=> 10
f = [](double x){ return x * x; };
f(5); //=> 25eval(lambda_x3,2.0) -- это то же самое, что и lambda_x3(2.0).
box.switchMove(Move) // Что??Move это имя типа, его нельзя тут использовать. Вот box.switchMove(Move.Left) и так далее написать можно. То есть вам нужно вычислить, в каком направлении подвинулся pers и выбрать, какой параметр передать: Move.Left, Move.Right, Move.Up или Move.Down.
const T&TT&T* / const T*. Константность зависит от того, надо ли параметр модифицироватьT&&std::unique_ptrstd::unique_ptr указывает на память, которой мы владеем. Предпочитать значению его следует, если это полиморфный типstd::array, std::fstream. Если мы хотим передавать владельца переменной такого типа или, например, вернуть из функции, то придётся использовать std::unique_ptr.
type -- это имя типа вашего enum. var -- название переменной только что объявленного типа. Код можно переписать так:enum type {
A,B,C
};
enum type var;type -- это ключевое слово, лучше классический enum fruit { apple, orange };. Плюс определять переменные в объявлении типа -- advanced feature, я бы её в первом же примере не давал.
signed int num = INT_MAX; Тогда при ++num; что окажется в num -- unspecified. То есть может оказаться INT_MIN, а может 42.unsigned int num = UINT_MAX; Тогда при ++num; в num обязано оказаться 0, в соответствии со стандартом. переполнения беззнаковых целых быть не должно
#include <vector>
#include <random>
std::vector<double> result(100);
std::uniform_real_distribution<double> unif(-10.0, 10.0);
std::default_random_engine re;
for (int i = 0; i < 100; ++i) {
result[i] = unif(re);
}
std::sort(result.begin(), result.end());