тред по диагонали читал, ибо
ЧТО Ж ВЫ ДЕЛАИТИ!!
1) Реализация функции-члена сразу после объявления в классе? Нет пути - юзай inline для подстановки.
2) Передача аргумента не по ссылке в реализации перегрузки копирования(рекурсия) /сравнения ? И где уже const-ы для методов и некоторых их аргументов?
3) Компоненты вектора в паблике?!
Если у вас перегрузка сделана как функция поддержки, то объявите её дружественной классу - не уродуйте интерфейс!
4?) Заодно я не очень понял преимущество делать столько статических функций-членов. Большая часть из них вполне логически могла бы быть нестатическими.
Прошу прощения, если не прав и кого-то обидел.
А идея, наверно, неплохая - да.
апд:
только не говорите, что вы обсуждали C#-код, и C++ные придирки неактуальны