История изменений
Исправление Leron, (текущая версия) :
Только такой вариант не будет работать.
<'a> - определение, &'a - использование
Лайфтаймов может быть сколько угодно, поэтому их нужно явно указывать.
После апострофа что-то кроме лайфтайма может быть? Если нет то и так понятно что a - это lifetime.
Или наоборот, если объявляем что a - это лайфтайм, то зачем апостроф? Это как если бы в плюсах везде писали typename перед параметром шаблона.
Намного проще читается? Я сомневаюсь.
Я чего-то подумал, а почему не писать как в си-образных языках тип слева от имени:
&a str longest<a>(&a str x , &a str y) {
Без апострофов меньше шума.
typedef bool Fn() predicate;
bool stuff(predicate a_predicate)
Если писать справа, то шума больше - нужно двоеточие.
typedef Fn() bool predicate;
stuff(predicate: a_predicate) bool
Исходная версия Leron, :
Только такой вариант не будет работать.
<'a> - определение, &'a - использование
Лайфтаймов может быть сколько угодно, поэтому их нужно явно указывать.
После апострофа что-то кроме лайфтайма может быть? Если нет то и так понятно что a - это lifetime.
Или наоборот, если объявляем что a - это лайфтайм, то зачем апостроф? Это как если бы в плюсах везде писали typename перед параметром шаблона.
Намного проще читается? Я сомневаюсь.
Я чего-то подумал, а почему не писать как в си-образных языках тип слева от имени:
&a str longest<a>(&a str x , &a str y) {
Без апострофов меньше шума.
typedef bool Fn() predicate;
bool stuff(predicate a_predicate)
Если писать справа, то шума больше - нужно двоеточие.
typedef Fn() bool predicate;
stuff(a_predicate: predicate ) bool