Поскольку мой проект небольшой, я предпочитаю Koin, потому что это небольшая библиотека. Он имеет хороший API для областей и оболочек для VM от компонентов Android Architecture. Но вы должны знать, что Koin выглядит как Service Locator.
Я не могу определить, что в этом объявлении шаблона гарантирует существование
blockquote>Read
вt
.Ничто не гарантирует существование.
То есть: если шаблон создается с помощью
T
, который не имеет функции-членаRead
, то компилятор будет жаловаться, что была вызвана несуществующая функция.С другой стороны, тот факт, что шаблон является плохо сформированным, если
T::Read
не существует (и его нельзя вызвать с данным аргументом), гарантирует, чтоT
в любом правильно сформированном экземпляре шаблона будет иметь такой член.