クラステンプレート単体テスト on Boost.Test

あれですね.自分が「これが欲しい!」とか「こんなのあったら便利なはずだ!」って思った機能ってだいたいboostにすでにあるのが落ちなんですよね.まぁ,前々から重々承知していることではあるんですが.
今回,自分が「こんな機能が( ゜д゜)ホスィ…」と思ってboost漁ったらやっぱりあって「Σ(´Д`ズガーン!!」だったのが以下.

#include 
#include 
#include 
#include 

using boost::unit_test_framework::test_suite;

// デフォルトコンストラクタのテスト
template
void dflt_ctor_test()
{
  Vector v;
  BOOST_CHECK_EQUAL(v.size(), 0);
  BOOST_CHECK(v.begin() == v.end());
}

BOOST_META_FUNC_TEST_CASE(dflt_ctor_test);

// 充填コンストラクタのテスト
template
void filling_ctor_test()
{
  Vector v(55);
  BOOST_CHECK_EQUAL(v.size(), 55);
  BOOST_CHECK_EQUAL(std::distance(v.begin(), v.end()), 55);
}

BOOST_META_FUNC_TEST_CASE(filling_ctor_test);

test_suite *init_unit_test_suite(int argc, char *argv[])
{
  test_suite *test = BOOST_TEST_SUITE("`std::vector' test");

  // テストしたいvectorの実体
  typedef
    boost::mpl::vector4<
      std::vector,
      std::vector,
      std::vector,
      std::vector >
    >
    tl;

  // デフォルトコンストラクタのテストをまとめて行う
  test->add(BOOST_FUNC_TEMPLATE_TEST_CASE(dflt_ctor_test, tl));

  // 充填コンストラクタのテストをまとめて行う
  test->add(BOOST_FUNC_TEMPLATE_TEST_CASE(filling_ctor_test, tl));

  return test;
}

ないわきゃないと思ってはいたんですけどね・・・.