@Daniel Moth: I think you missed the point of my question.
in the future, suppose:
- you have a C++AMP compiler that targets direct3d v12 which has more capabilities that v11.
- you want to write code that targets the version of direct3d that's available on the user's machine, but you want to take advantage of the new d3dv12 features if available.
it would seem to me that there's definitely a need for versioning there, both at compile time AND at runtime.
will "restrict(direct3d)" always mean v11, if so how will we restrict to v12? if not, won't that break existing code when switching compilers?