コピー・コンストラクタを明示的に書くことで、
コンストラクタのない、あるいはprivate/protectedになっていて呼び出せないクラスが
要素になることを防止する、というのはどうだろう?