iutest  1.17.1.0
名前空間 | マクロ定義
iutest_prod.hpp ファイル

iris unit test production code 対応用 ファイル [詳解]

#include "iutest_config.hpp"
iutest_prod.hpp の依存先関係図:
被依存関係図:

[ソースコード]

名前空間

 iutest
 iutest root namespace
 

マクロ定義

#define IUTEST_FRIEND_TEST(testcasename_, testname_)   friend class IUTEST_TEST_CLASS_NAME_(testcasename_, testname_)
 テストから見えるように fried 登録
 
#define IUTEST_FRIEND_TYPED_TEST(testcasename_, testname_)   template<typename T>IUTEST_FRIEND_TEST(testcasename_, testname_)
 テストから見えるように fried 登録(IUTEST_TYPED_TEST 用)
 
#define IUTEST_FRIEND_TYPED_TEST_P_DECLARATION(testcasename_, testname_)   namespace IIUT_TYPED_TEST_P_NAMESPACE_(testcasename_) { template<typename T>class testname_; }
 テストから見えるように fried 登録するための宣言
 
#define IUTEST_FRIEND_TYPED_TEST_P(testcasename_, testname_)   template<typename T>friend class IIUT_TYPED_TEST_P_NAMESPACE_(testcasename_)::testname_
 テストから見えるように fried 登録(IUTEST_TYPED_TEST_P 用)
 
#define IUTEST_MAKE_PEEP(member_type, class_name, member_name)   IUTEST_MAKE_PEEP_TAG_(member_type, class_name, member_name)
 private メンバーへのアクセス権を作成 [詳解]
 
#define IUTEST_PEEP_GET(v, class_name, member_name)   (v.*::iutest::detail::peep_tag< IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::value)
 private メンバーへのアクセス [詳解]
 
#define IUTEST_PEEP_STATIC_GET(class_name, member_name)   (*::iutest::detail::peep_tag< IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::value)
 static private メンバーへのアクセス [詳解]
 
#define IUTEST_PEEP(class_name, member_name)   ::iutest::detail::peep::Peep< class_name, IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::type
 private メンバーへのアクセスクラス宣言 [詳解]
 
#define IUTEST_MAKE_PEEP_TAG_(member_type, class_name, member_name)
 

詳解

iris unit test production code 対応用 ファイル

著者
t.shirayanagi
copyright
Copyright (C) 2012-2020, Takazumi Shirayanagi
This software is released under the new BSD License, see LICENSE

マクロ定義詳解

◆ IUTEST_MAKE_PEEP

#define IUTEST_MAKE_PEEP (   member_type,
  class_name,
  member_name 
)    IUTEST_MAKE_PEEP_TAG_(member_type, class_name, member_name)

private メンバーへのアクセス権を作成

引数
member_type= 型
class_name= クラス
member_name= メンバー名
各種例
simple.cpp.

◆ IUTEST_MAKE_PEEP_TAG_

#define IUTEST_MAKE_PEEP_TAG_ (   member_type,
  class_name,
  member_name 
)
値:
template<typename T>struct IIUT_PEEP_TAG_NAME_(class_name, member_name); \
template<>struct IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> { \
typedef ::iutest_type_traits::identity<member_type>::type type; }; \
template<typename T, typename Tag, typename Tag::type X> \
struct IIUT_PEEP_SETTER_NAME_(class_name, member_name) { \
IIUT_PEEP_SETTER_NAME_(class_name, member_name)() { \
::iutest::detail::peep_tag<Tag>::value = X; } \
static IIUT_PEEP_SETTER_NAME_(class_name, member_name) instance; \
}; \
template<typename T, typename Tag, typename Tag::type X> \
IIUT_PEEP_SETTER_NAME_(class_name, member_name)<T, Tag, X> \
IIUT_PEEP_SETTER_NAME_(class_name, member_name)<T, Tag, X>::instance; \
template struct IIUT_PEEP_SETTER_NAME_(class_name, member_name)<class_name \
, IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name>, &class_name::member_name>

◆ IUTEST_PEEP

#define IUTEST_PEEP (   class_name,
  member_name 
)    ::iutest::detail::peep::Peep< class_name, IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::type

private メンバーへのアクセスクラス宣言

引数
class_name= クラス名
member_name= メンバー名

◆ IUTEST_PEEP_GET

#define IUTEST_PEEP_GET (   v,
  class_name,
  member_name 
)    (v.*::iutest::detail::peep_tag< IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::value)

private メンバーへのアクセス

引数
v= オブジェクトインスタンス
class_name= クラス名
member_name= メンバー名
各種例
simple.cpp.

◆ IUTEST_PEEP_STATIC_GET

#define IUTEST_PEEP_STATIC_GET (   class_name,
  member_name 
)    (*::iutest::detail::peep_tag< IIUT_PEEP_TAG_NAME_(class_name, member_name)<class_name> >::value)

static private メンバーへのアクセス

引数
class_name= クラス名
member_name= メンバー名