Re[16]: За счет чего выстреливают языки?
От: WolfHound  
Дата: 13.07.15 14:31
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Возможен вот такой вариант
Автор: Evgeny.Panasyuk
Дата: 12.10.14
:

Раза в 2-3 больше кода это такая мелочь...

EP>Такое было в C++98 — помечаешь метод ключевым словом, и компилятор не даст вызывать его без лока.

Чего?

EP>В Nemerle есть вывод типов через использование, но не нужно забывать/умалчивать что сами типы-то несравнимо примитивнее — например higher-rank polymorphism'а нет, и соответствующего вывода типов тоже

Точно нет?
  Скрытый текст
public abstract class Foo
{
  public abstract Bar[T](value : T) : T;
}

public class FooImpl : Foo
{
  public override Bar[T](value : T) : T
  {
    value
  }
}

module Program
{
  Test[T](foo : Foo, t : T, s : string) : void
  {
    WriteLine(foo.Bar(t));
    WriteLine(foo.Bar(s));
  }

  Main() : void
  {
    Test(FooImpl(), 1, "asd");
    Test(FooImpl(), "qwe", "asd");
    _ = ReadKey();
  }
}


EP>Без проблем: live demo.

Тормоза и выделение памяти.

EP>Делают, например смотри ODB:

0.00001% пользователей это никто.

EP>Я использовал Clang ASTMatcher — никакого ада.

Вот это ад:
binaryOperator(hasOperatorName("+"), hasLHS(integerLiteral(equals(0))))

Для сравнения аналог на немерле.
<[ $r + 0 ]>


EP>С чем? С Nemerle? Почему?

Слишком долго объяснять, учитывая то, что для тебя Clang ASTMatcher не ад.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.