OPL++: A Modeling Layer for Constraint Programming Libraries