Open apolukhin opened 3 years ago
Александр Коновалов, 9 октября 2018, 0:42 В данном подходе мне только не нравится наличие "магических" in, out и compiler. В их получении думаю логичне было бы опереться на синтаксис рефлексий. Или пойти по пути type_info, т.е. что-нибудь вроде:
for (auto f : metainfo(interface).in.functions()) {
if (f.is_copy() || f.is_move()) {
metainfo(interface).compiler.error("this type may not have a copy or move function" , f);
}
}
Таким образом, будет консистентно с typeid, sizeof и другими ключевыми словами с подобным синтаксисом.
Alexander, 9 октября 2018, 8:31 Саттер на презентации говорил, что предложение ещё будет меняться. В том числе и синтаксис обьявления метаклассов. Так что вариант, который есть сейчас, далеко не финальный
Перенос предложения: голоса +7, -1 Автор идеи: Игорь Шаповал
Сделать более красивее синтаксис метаклассов
В текущем предложении по метаклассам одобрен синтаксис
Сдесь не понятно. Это функция или метакласс? Подобная ситуация с terse syntax для концептов: это тип или концепт? Поскольку метакласс - это сущность времени компиляции, то следующий синтаксис более выразителен
Не нужно добавлять новые слова. Насчет source и target, то лучше ввести два ключевые слова in, out на подобие this. Или сделать встроенные объекты: target, source, compiler.
И определение сделать проще и естествение. Вместо
Сделать вот так
Этот синтаксис на много лучше. Но пока, рефлексия и кодогенерация не будет принята, окончательный синтаксис метаклассов будет менятся.