7

場合によっては、データのないダミー値をテンプレートに渡す必要があります。例えば:

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標準ライブラリまたはブーストに私のタイプのようなものの実装はありますか?

4

5 に答える 5

8

空のタプルを使用できます。お気に入りstd::tuple<>();

于 2013-10-18T11:38:44.803 に答える
4

通常の解決策は を使用することvoidですが、これにはテンプレートの部分的な特殊化が必要です (そうしないと、より多くのスペースが必要になるため、これも一般的です)。

于 2013-10-18T11:39:44.220 に答える
3

boost::noneとはどうboost::none_tですか?

http://www.boost.org/doc/libs/1_54_0/boost/none.hpp

于 2013-10-18T11:39:21.323 に答える
0

Boost.MPLはタイプ を提供しますvoid_

于 2013-10-18T11:39:30.530 に答える