<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="cutter-Assertions-with-C++-support">
<refmeta>
<refentrytitle role="top_of_page" id="cutter-Assertions-with-C++-support.top_of_page">C++サポート付きの検証</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>Cutterライブラリ</refmiscinfo>
</refmeta>
<refnamediv>
<refname>C++サポート付きの検証</refname>
<refpurpose>C++サポート付きであなたのプログラムが期待通りに動作しているかを検証します。</refpurpose>
</refnamediv>

<refsynopsisdiv id="cutter-Assertions-with-C++-support.synopsis" role="synopsis">
<title role="synopsis.title">概要</title>

<synopsis>#define             <link linkend="cppcut-assert-equal">cppcut_assert_equal</link>                 (expected,
                                                         actual,
                                                         ...)
#define             <link linkend="cppcut-assert-not-equal">cppcut_assert_not_equal</link>             (expected,
                                                         actual,
                                                         ...)
#define             <link linkend="cppcut-assert-not-null">cppcut_assert_not_null</link>              (object,
                                                         ...)
#define             <link linkend="cppcut-assert-null">cppcut_assert_null</link>                  (object,
                                                         ...)
#define             <link linkend="cppcut-assert-operator">cppcut_assert_operator</link>              (lhs,
                                                         operator,
                                                         rhs,
                                                         ...)
</synopsis>
</refsynopsisdiv>

<refsect1 id="cutter-Assertions-with-C++-support.description" role="desc">
<title role="desc.title">説明</title>

</refsect1>
<refsect1 id="cutter-Assertions-with-C++-support.details" role="details">
<title role="details.title">詳細</title>
<refsect2 id="cppcut-assert-equal" role="macro" condition="since:1.0.9">
<title>cppcut_assert_equal()</title>
<indexterm zone="cppcut-assert-equal" role="1.0.9"><primary>cppcut_assert_equal</primary></indexterm>
<programlisting>#define             cppcut_assert_equal(expected, actual, ...)</programlisting>
<para>この検証はテンプレートを利用しています。任意のオブジェクトのリファレンスを<parameter>expected</parameter>と<parameter>actual</parameter>に渡せます。</para>
<para><parameter>expected</parameter> == <parameter>actual</parameter>が成り立つときパスします。</para>
<para>例: <informalexample><programlisting>
cppcut_assert_equal(3, 1 + 2);
cppcut_assert_equal(3, 1 + 2, cppcut_message("easy expression"));
cppcut_assert_equal(3, 1 + 2, cppcut_message() &lt;&lt; "easy expression"));
</programlisting></informalexample></para><variablelist role="params">
<varlistentry><term><parameter>expected</parameter> :</term>
<listitem><simpara>期待値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>actual</parameter> :</term>
<listitem><simpara>実測値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter> :</term>
<listitem><simpara>追加メッセージ（省略可能）。詳細は<link linkend="cppcut-message"><function>cppcut_message()</function></link>を見てください。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.0.9から</para></refsect2>
<refsect2 id="cppcut-assert-not-equal" role="macro" condition="since:1.2.0">
<title>cppcut_assert_not_equal()</title>
<indexterm zone="cppcut-assert-not-equal" role="1.2.0"><primary>cppcut_assert_not_equal</primary></indexterm>
<programlisting>#define             cppcut_assert_not_equal(expected, actual, ...)</programlisting>
<para>この検証はテンプレートを利用しています。任意のオブジェクトのリファレンスを<parameter>expected</parameter>と<parameter>actual</parameter>に渡せます。</para>
<para><parameter>expected</parameter> != <parameter>actual</parameter>が成り立つときパスします。</para>
<para>例: <informalexample><programlisting>
cppcut_assert_not_equal(3, 3 + 1);
cppcut_assert_not_equal(3, 3 + 1, cppcut_message("easy expression"));
cppcut_assert_not_equal(3, 3 + 1, cppcut_message() &lt;&lt; "easy expression"));
</programlisting></informalexample></para><variablelist role="params">
<varlistentry><term><parameter>expected</parameter> :</term>
<listitem><simpara>期待値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>actual</parameter> :</term>
<listitem><simpara>実測値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter> :</term>
<listitem><simpara>追加メッセージ（省略可能）。詳細は<link linkend="cppcut-message"><function>cppcut_message()</function></link>を見てください。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.2.0から</para></refsect2>
<refsect2 id="cppcut-assert-not-null" role="macro" condition="since:1.2.0">
<title>cppcut_assert_not_null()</title>
<indexterm zone="cppcut-assert-not-null" role="1.2.0"><primary>cppcut_assert_not_null</primary></indexterm>
<programlisting>#define             cppcut_assert_not_null(object, ...)</programlisting>
<para>この検証はテンプレートを利用しています。任意のオブジェクトのポインタを<parameter>object</parameter>に渡せます。</para>
<para><parameter>object</parameter>が<link linkend="NULL:CAPS"><literal>NULL</literal></link>以外のときパスします。</para>
<para>例: <informalexample><programlisting>
std::string message("hello");
std::string *not_null_string = &amp;message;
std::string *null_string = NULL;
cppcut_assert_not_null(not_null_string); // pass
cppcut_assert_not_null(null_string);     // fail
</programlisting></informalexample></para><variablelist role="params">
<varlistentry><term><parameter>object</parameter> :</term>
<listitem><simpara>チェックするオブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter> :</term>
<listitem><simpara>追加メッセージ（省略可能）。詳細は<link linkend="cppcut-message"><function>cppcut_message()</function></link>を見てください。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.2.0から</para></refsect2>
<refsect2 id="cppcut-assert-null" role="macro" condition="since:1.2.0">
<title>cppcut_assert_null()</title>
<indexterm zone="cppcut-assert-null" role="1.2.0"><primary>cppcut_assert_null</primary></indexterm>
<programlisting>#define             cppcut_assert_null(object, ...)</programlisting>
<para>この検証はテンプレートを利用しています。任意のオブジェクトのポインタを<parameter>object</parameter>に渡せます。</para>
<para><parameter>object</parameter>が<link linkend="NULL:CAPS"><literal>NULL</literal></link>のときパスします。</para>
<para>例: <informalexample><programlisting>
std::string message("hello");
std::string *not_null_string = &amp;message;
std::string *null_string = NULL;
cppcut_assert_null(not_null_string); // fail
cppcut_assert_null(null_string);     // pass
</programlisting></informalexample></para><variablelist role="params">
<varlistentry><term><parameter>object</parameter> :</term>
<listitem><simpara>チェックするオブジェクト。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter> :</term>
<listitem><simpara>追加メッセージ（省略可能）。詳細は<link linkend="cppcut-message"><function>cppcut_message()</function></link>を見てください。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.2.0から</para></refsect2>
<refsect2 id="cppcut-assert-operator" role="macro" condition="since:1.2.0">
<title>cppcut_assert_operator()</title>
<indexterm zone="cppcut-assert-operator" role="1.2.0"><primary>cppcut_assert_operator</primary></indexterm>
<programlisting>#define             cppcut_assert_operator(lhs, operator, rhs, ...)</programlisting>
<para>この検証はテンプレートを利用しています。任意のオブジェクトを<parameter>lhs</parameter>と<parameter>rhs</parameter>に渡せます。</para>
<para>(<parameter>lhs</parameter> <parameter>operator</parameter> <parameter>rhs</parameter>)が真のときにパスします。</para>
<para>例: <informalexample><programlisting>
cppcut_assert_operator(1, &lt;, 2); // パス
cppcut_assert_operator(1, &gt;, 2); // 失敗
</programlisting></informalexample></para><variablelist role="params">
<varlistentry><term><parameter>lhs</parameter> :</term>
<listitem><simpara>左辺値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>operator</parameter> :</term>
<listitem><simpara>二項演算子。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>rhs</parameter> :</term>
<listitem><simpara>右辺値。</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter> :</term>
<listitem><simpara>追加メッセージ（省略可能）。詳細は<link linkend="cppcut-message"><function>cppcut_message()</function></link>を見てください。</simpara></listitem></varlistentry>
</variablelist><para role="since">1.2.0から</para></refsect2>

</refsect1>

</refentry>
