LINUX.ORG.RU

Герб Саттер предлагает добавить в С++ метаклассы

 , ,


1

7

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf

В свежем пропосале Саттер предлагает добавить в С++ механизм для добавления пользовательских мета-типов. Автор отталкивается от наблюдения, что struct это просто class с public:, а enum class это просто class с константами, и предлагает обобщить этот подход и сделать его доступным разработчику. Вот пример реализации аналога interface из Java :

$class interface
{
    ~interface() noexcept {}
    constexpr {
        compiler.require($interface.variables().empty(),
                         "interfaces may not contain data");
        for (auto f : $interface.functions()) {
            compiler.require(!f.is_copy() && !f.is_move(),
                             "interfaces may not copy or move; consider a"
                             " virtual clone() instead");
            if (!f.has_access ()) f.make_public();
            compiler.require(f.is_public(),
                 "interface functions must be public");
            f.make_pure_virtual();
        }
    }
};
// User code (proposed C++)
interface IShape {
    int area() const ;
    void scale_by(double factor);
};
Лично я не верю, что комитет это пропустит, но сам Саттер не последний человек в комитете и понимает, что предлагает.

Ответ на: комментарий от RazrFalcon

В расте нет смысла создавать умный указатель.

В общем случае? Разумеется, есть. Ну а использовать unique_ptr вместо создания объекта на стеке и в плюсах нужно далеко не везде.

DarkEld3r ★★★★★
()
Ответ на: комментарий от eao197

Так вам уже все объяснили, что вы обосраслись.

А у вас были объяснения? Что-то я не увидел их за потоком всем известной субстанции.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

А у вас были объяснения? Что-то я не увидел их за потоком всем известной субстанции.

у тебя пятно сзади коричневое и из под штанины что-то капает

anonymous
()

Он долго боролся с недугом, но укус Александреску не остался без последствий, инкубационный период закончился.

На самом деле, конечно, к этому всё идет. Констрейты всякие - это полумеры.

Deleted
()
Ответ на: метаклассы в С++ — не прошло и 20 лет.. от anonymous

И? Я уже не первый раз слышу эту копипасту.

А вообще, есть какой-то профит от всех эти диссертаций, кроме как раздувать ЧСВ? Ведь это всеравно, что писать в стол. Ну вот есть эта диссертация, ок. И что?

Даже если ты не лукавишь, и действительно ты первый был, так это же убого! Вместо того, что бы получить имя Константина Книжника среди известных всему миру имен современного CS, мы имеем обиженного анонима на ЛОРе, не сделавшего больше ничего за прошедшие 20 лет. Стыдно таким гордиться.

прогресс!!! развитие!!!

Посчитай сам, сколько у тебя заняло развитие этой идеи от диссертации до массового применения. Подскажу: бесконечность.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Информацию о достижениях Книжника сюда приносит один и тот же аноним. Сам же Книжник, если я помню правильно, сделал и долгое время сопровождал несколько СУБД, какие-то даже на коммерческой основе. Вряд ли ему нужно что-то на ЛОРе из-под анонима доказывать.

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.