Здравствуйте, MaximE, Вы писали:
ME>Undefined behavior могло бы возникнуть, если бы я не определил деструктор у DataMapper. В этом случае компилятор сгенерировал бы деструктор по-умолчанию в каждом объектнике, пользующем DataMapper, что и было бы причиной undefined behavior.
открываем стандарт и смотрим пункт 17.4.3.6, а именно последнюю часть:
In particular, the effects are undefined in the following cases:
-if an incomplete type(3.9) is used as template argument when instanting a template component