У меня есть ощущение, что этот вопрос будет помечен как спорный или что-то в этом роде, но я собираюсь попытаться ответить любым способом:
В контексте статьи «утечка» в абстракции не являетсяутечка памяти, а точнее, абстракция, страдающая от ограничений базовой реализации.
Чем больше вы пытаетесь скрыть базовую реализацию, тем менее «тривиальной» становится абстракция - тем больше работы она выполняет.
Итак, мне кажется, что «тривиальная» абстракция - это такая, которая на самом деле не делает ничего, кроме того, что делает базовая реализация.
Взяв первый пример статьи - тривиальная абстракциядля IP будет какая-то библиотека, которая позволит вам легко создавать IP-пакеты, не собирая один байт за байтом, но ничего больше не будет делать - без повторов, без протокола проверки доставки, без нумерации пакетов для повторной сборки в порядке, как это делает TCP.
Но, в конце концов, так как статья не предоставляет ACОпределение слова «тривиальный» и «нетривиальный» находится в глазах смотрящего.Вы судите, где находится строка, и сколько абстракции нужно добавить поверх абстрагированной реализации, прежде чем она станет нетривиальной ...
Кстати, это не специфический для C ++ вопрос.