有时需要将一个没有任何数据的虚拟值传递给某个模板。例如:
template <typename X, typename Y>
struct BoundaryConditions {
X x; Y y;
BoundaryConditions(typename X::init xi, typename Y::init yi) : x(xi), y(yi) {
...
}
};
我们可能希望实现不带任何参数的自由边界条件。通过类型检查实现这样的事情非常容易:
struct Nothing {};
Nothing nothing = Nothing();
struct Free {
typedef Nothing init;
...
};
BoundaryConditions<Free, Fixed> foo(nothing, 100);
所以我的问题是:Nothing
在标准库或 boost 中是否有类似我的类型的实现?