ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » система типов » Шаблоны как first class object


Шаблоны как first class object

Сообщений 1 страница 2 из 2

1

Ну и круть. Первый раз вижу переменные, в которые можно помещать шаблоны.

C++14 now allows the creation of variables that are templated.

Clang >= 3.4 (с ним у меня вроде всё хорошо, clang version 3.8.1)
GCC >= GCC 5, по-умолчанию, начиная с GCC 6. Гента не готова, стабильная версия =gcc-4.9.4

auto lambda = [](auto x, auto y) {return x + y;};

это сокращение для

Код:
struct unnamed_lambda
{
  template<typename T, typename U>
    auto operator()(T x, U y) const {return x + y;}
};
auto lambda = unnamed_lambda{};

https://en.wikipedia.org/wiki/C++14

Если бы не необходимость в новомодном Borrow Checking, транспилировал бы Кумир в C++.
Но всё-таки, сначала надо рассмотреть Rust.

С другой стороны нельзя сказать, что шаблоны теперь "далеко за пределами" (out of scope), ведь я же хочу автовывод типов для параметров? Или нафиг-нафиг? Раст же как-то и так справляется...

Отредактировано Лис (2017-03-27 01:40:24)

0

2

Лис написал(а):

Ну и круть. Первый раз вижу переменные, в которые можно помещать шаблоны.

А разве это можно считать шаблонами как объектами первого класса?
Вроде бы тут шаблоны используются просто как анонимные типы. Но они все еще типы а не объекты первого класса. Шаблон и тем более тип все еще невозможно присвоить переменной или передать как аргумент ф-и, условие для объектов первого класса не выполнено.

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » система типов » Шаблоны как first class object