[boost] [contract] assertion requirements as meta-functions or not?