網域.¶
バージョン 1.0 で追加.
最初にSphinxは単一のプロジェクトのために構想されたPython言語文書ですしばらくして、それは文書ツールとしてすべての人に提供されましたが、Pythonモジュールの文書は依然としてその中に深く内蔵されています--例えば最も基本的な指示 function
Pythonオブジェクトのために設計されていますSphinxが少し流行しているため,C/C++プロジェクト,JavaScript,さらにはreStrucredTextタグ(本稿で示すように)の多くの異なる目的に利用されるようになった.
これは常に可能であるが、現在では異なるプログラミング言語を用いたプロジェクト文書、さらにはマスタSphinx発行版ではサポートされていないプロジェクト文書をより容易にサポートすることができる方法が提供されている 域 このようなすべての目的のために。
属性ドメインはタグ(ReStructiredText)の集合である. directive sと role s)記述してリンクする object 一緒に属する、例えばプログラミング言語の要素。ドメイン内のコマンドとロール名の名前は以下のとおりである. domain:name
例えば、: py:function
それがそうです。ドメインはまた、Pythonモジュールインデックスのようなカスタムインデックスを提供することができます。
ドメインを持つことは、文書のセットがC++およびPythonクラスを参照したい場合、名前付けの問題が発生しないことを意味します。これはまた新しい言語文書を支援する拡張が作成しやすいことを意味する。
本節では,Sphinxに付随するドメインが提供する機能について述べる.一部にはドメインAPIも記録されている. ドメインAPI それがそうです。
基本割増価格¶
ほとんどの地域は多くの object description directives モジュールによって提供される特定のオブジェクトを記述するために使用される。各命令は、記述されたコンテンツに関する基本情報を提供するために1つまたは複数の署名を必要とし、コンテンツは説明であるべきである。ドメインは、一般に、交差参照を容易にするために、すべてのエンティティの内部インデックスを保持する。一般に、それはまた、表示された従来のインデックスにエントリを追加する。表示されたインデックスへのエントリの追加を禁止したい場合は、コマンドオプションにフラグを設定することができます :noindexentry:
それがそうです。オブジェクト記述をレイアウトし、交差参照のために使用することさえできない場合、命令オプションにフラグを設定することができる :noindex:
(これはつまり :noindexentry:
)。しかし、各ドメインの各指示がこのようなオプションをサポートする可能性があるわけではないことに注意してください。
バージョン 3.2 で追加: 指示オプション noindexentry
Python、C、C++およびJavascriptドメインで。
Pythonドメイン命令を使用する例:
.. py:function:: spam(eggs)
ham(eggs)
Spam or ham the foo.
次に2つのPython関数を紹介します spam
そして ham
それがそうです。(署名が長すぎる場合には、次の行に続く行に逆スラッシュが追加されていれば、行を改行することができることに留意されたい。例::
.. py:function:: filterwarnings(action, message='', category=Warning, \
module='', lineno=0, append=False)
:noindex:
(この例は、使用方法も示している :noindex:
旗。)
ドメインはまた,これらのオブジェクト記述にリンクする役割を提供する.例えば、上記の例で説明した関数のうちの1つにリンクするには、以下のようにいえる。
The function :py:func:`spam` does a similar thing.
ご覧のように、コマンド名とキャラクター名にはドメイン名とコマンド名が含まれています。
デフォルト域.
1つのドメインのみからのオブジェクトを記述する文書については、著者は、各命令、役割などでその名前を再宣言する必要はない…デフォルト値を指定した後。これは値を構成することで primary_domain
あるいはこの指示によって:
-
.. default-domain::
name
¶ 新しい黙認ドメインを選択する。当.
primary_domain
グローバルデフォルト値を選択し、これは同一ファイル内でのみ有効です。
他のデフォルト値が選択されていない場合、Pythonドメイン(名前は py
)はデフォルトであり、主に古いバージョンのSphinxのために書かれた文書と互換性があるためである。
ドメイン名を指定することなく、デフォルトドメインに属する命令および役割を言及することができる。
.. function:: pyfunc()
Describes a Python function.
Reference to :func:`pyfunc`.
交差引用文法¶
ドメインが提供する交差参照役割に対しては,通常の交差参照と同様の機能が存在する.見 交差引用文法 それがそうです。
簡単に言うと
明確なタイトルと引用目標を提供することができます:
:role:`title <target>
`引用する 目標 しかしリンクテキストは タイトル それがそうです。コンテンツの前に接頭辞をつけると
!
参照/ハイパーリンクは作成されません。コンテンツの前に接頭辞をつけると
~
したがって,リンクテキストはターゲットの最後のコンポーネントのみとなる.例えば:py:meth:`~Queue.Queue.get
引用する ``Queue.Queue.get` しかし表示されているのはget
リンクテキストとする.
Pythonドメイン¶
Pythonドメイン(名前 py )モジュール宣言に以下の命令を提供します。
-
.. py:module::
name
¶ この命令マーキングモジュール(または饅頭モジュール、この場合、名前は、パッケージ名を含む)記述の開始を完全に限定すべきである。コンテンツは作成されません(例えば
py:class
確かにそうです)。この命令はまた、グローバルモジュールインデックスにエントリを作成する。
オプション
-
:platform:
platforms (comma separated list)¶ モジュールが利用可能なプラットフォームを指定する(モジュールがすべてのプラットフォーム上で利用可能である場合、オプションは省略されるべきである)。鍵は短い識別子であり、使用されている例は、“IRIX”、“Mac”、“Windows”、“Unix”を含む。適用する場合には,すでに使用した鍵を用いることが重要である.
-
:synopsis:
purpose (text)¶ 1つの文からなり、モジュールの使用を記述する--現在、グローバルモジュールインデックスでのみ使用されている。
-
:deprecated:
(no argument)¶ モジュールは破棄されたものとしてマークされ、その後、異なる位置で破棄されたモジュールとして指定される。
-
-
.. py:currentmodule::
name
¶ この命令は、ここに記述されたクラス、関数などが所与のモジュールにあることをSphinxに伝える(例えば、
py:module
)であるが、インデックス項、グローバルモジュールインデックスの項、または以下の項目のリンク先は作成されないpy:mod
それがそうです。これは,モジュール内の文書が複数の文書または部分に分散している場合に有用である-1つの位置にあるpy:module
指示、その他は限定されていますpy:currentmodule
それがそうです。
モジュールおよびクラスコンテンツについては、以下の命令が提供される。
-
.. py:function::
name(parameters)
¶ モジュールレベル関数を記述する.署名にはPython関数定義で与えられたパラメータが含まれるべきですので、参照されたい Python署名 それがそうです。例えば:
.. py:function:: Timer.repeat(repeat=3, number=1000000)
あなたが使うべき方法
py:method
それがそうです。説明は、一般に、必要なパラメータおよびその使用方法に関する情報(特にパラメータとして伝達される可変オブジェクトが修正されているかどうか)、副作用、および可能な異常を含む。
この情報は
py
命令)は任意に構造化された形で与えられるので、参照されたい 情報フィールドリスト それがそうです。オプション
-
:async:
(no value)¶ この関数が非同期関数であることを示す.
バージョン 2.1 で追加.
-
-
.. py:data::
name
¶ 記述モジュール内のグローバルデータは、“定義された定数”として使用される変数および値を含む。この環境を用いた場合,クラスやオブジェクト属性は記録されていない.
オプション
-
:type:
type of the variable (text)¶ バージョン 2.4 で追加.
-
:value:
initial value of the variable (text)¶ バージョン 2.4 で追加.
-
-
.. py:exception::
name
¶ 異常類を記述する。署名は構造関数パラメータ付き丸括弧を含むことができる(ただし必要ない).
オプション
-
:final:
(no value)¶ そのクラスが期末クラスであることを示す.
バージョン 3.1 で追加.
-
-
.. py:class::
name
¶ -
.. py:class::
name(parameters)
1つのクラスを記述する.署名は、構造関数パラメータとして表示されるパラメータを有する丸括弧を選択的に含むことができる。また見られる. Python署名 それがそうです。
このクラスに属するメソッドと属性は,この命令の主体に置かれるべきである.それらが外部に配置されている場合、提供される名前は、交差参照が依然として有効であるようにクラス名を含むべきである。例::
.. py:class:: Foo .. py:method:: quux() -- or -- .. py:class:: Bar .. py:method:: Bar.quux()
第一の方法は第一選択の方法である。
オプション
-
:final:
(no value)¶ そのクラスが期末クラスであることを示す.
バージョン 3.1 で追加.
-
-
.. py:attribute::
name
¶ オブジェクトデータ属性を記述する.記述には、予期されるデータタイプおよび直接変更可能かどうかに関する情報が含まれるべきである。
オプション
-
:type:
type of the attribute (text)¶ バージョン 2.4 で追加.
-
:value:
initial value of the attribute (text)¶ バージョン 2.4 で追加.
-
-
.. py:method::
name(parameters)
¶ 対象方法を記述する.パラメータは含まれてはいけない
self
パラメータ説明は、以下と同様の情報を含むべきであるfunction
それがそうです。また見られる. Python署名 そして 情報フィールドリスト それがそうです。オプション
-
:abstractmethod:
(no value)¶ この方法が抽象的な方法であることを指示する.
バージョン 2.1 で追加.
-
:async:
(no value)¶ この方法が非同期メソッドであることを示す.
バージョン 2.1 で追加.
-
:classmethod:
(no value)¶ この方法がクラスメソッドであることを指示する.
バージョン 2.1 で追加.
-
:final:
(no value)¶ このクラスを指示することが最終的な方法である.
バージョン 3.1 で追加.
-
:property:
(no value)¶ この方法が属性であることを指示する.
バージョン 2.1 で追加.
-
:staticmethod:
(no value)¶ この方法が静的メソッドであることを示す.
バージョン 2.1 で追加.
-
-
.. py:decorator::
name
¶ -
.. py:decorator::
name(parameters)
装飾符関数を記述する。サインは装飾者の使い方を代表しなければならない。例えば、与えられた関数
def removename(func): func.__name__ = '' return func def setnewname(name): def decorator(func): func.__name__ = name return func return decorator
説明は以下のとおりである.
.. py:decorator:: removename Remove name of the decorated function. .. py:decorator:: setnewname(name) Set name of the decorated function to *name*.
(と)
.. py:decorator:: removename(func)
()いえ。
py:deco
キャラクターはこの指示でマークされた装飾器にリンクされている;使用すべきであるpy:func
役。
-
.. py:decoratormethod::
name
¶ -
.. py:decoratormethod::
name(signature)
相同
py:decorator
しかし、装飾者にとっては、これは一つの方法だ。方法は装飾器の方法を引用する。
py:meth
役。
Python署名¶
関数,メソッド,クラス構造関数の署名はPythonで書かれたように与えることができる.
オプションのパラメータのデフォルト値を与えることができる(ただし、それらがコンマを含む場合、署名解析器を混同する)。Python 3スタイルパラメータ書き込みおよびリターンタイプ書き込みも与えられます。
.. py:function:: compile(source : string, filename, symbol='file') -> ast object
デフォルト値のないオプションのパラメータを有する関数(通常、キーワードパラメータがサポートされていないC拡張モジュールで実装される関数)については、方形括弧を使用して選択可能な部分を指定することができる:
compile
(source[, filename[, symbol]])¶
左括弧はコンマの前に置くのが習慣です。
情報フィールドリスト¶
バージョン 0.4 で追加.
バージョン 3.0 で変更: メタフィールドを追加します。
Pythonオブジェクト記述命令では、以下のフィールドを含むRESTフィールドリストをよく識別してフォーマットすることができます:
param
,parameter
,arg
,argument
,key
,keyword
: Description of a parameter.type
:パラメータのタイプ.可能であれば、リンクを作成します。raises
,raise
,except
,exception
: That (and when) a specific exception is raised.var
,ivar
,cvar
: Description of a variable.vartype
:変数のタイプ.可能であれば、リンクを作成します。returns
,return
: Description of the return value.rtype
:タイプを返します。可能であれば、リンクを作成します。meta
:pythonオブジェクトの記述にメタデータを追加します。メタデータは出力文書に表示されない.例えば:meta private:
Pythonオブジェクトがプライベートメンバであることを示します。これはsphinx.ext.autodoc
メンバーを選別するために使います。
注釈
In current release, all var
, ivar
and cvar
are represented as
"Variable". There is no difference at all.
フィールド名は、以下のキーワードのうちの1つとパラメータから構成されなければならない(除く) returns
そして rtype
これらはパラメータを必要としない).以下の例は、この点を最も説明することができる。
.. py:function:: send_message(sender, recipient, message_body, [priority=1])
Send a message to a recipient
:param str sender: The person sending the message
:param str recipient: The recipient of the message
:param str message_body: The body of the message
:param priority: The priority of the message, can be a number 1-5
:type priority: integer or None
:return: the message id
:rtype: int
:raises ValueError: if the message_body exceeds 160 characters
:raises TypeError: if the message_body is not a basestring
これは以下のようになる.
send_message
(sender, recipient, message_body[, priority=1])受取人にメールを送る
タイプが単一の単語であれば、以下に示すように、パラメータタイプと記述を組み合わせてもよい。
:param int priority: The priority of the message, can be a number 1-5
バージョン 1.5 で追加.
以下の文法自動リンクリストや辞書などのコンテナタイプを使用することができる:
:type priorities: list(int)
:type priorities: list[int]
:type mapping: dict(str, int)
:type mapping: dict[str, int]
:type point: tuple(float, float)
:type point: tuple[float, float]
単語“or”:で区切られている場合、タイプフィールド内の複数のタイプが自動的にリンクされる
:type an_arg: int or None
:vartype a_var: str or int
:rtype: float or str
クロスリファレンスPythonオブジェクト¶
以下の役割とは,モジュール中のオブジェクトであり,マッチする識別子が見つかれば,これらのロールはハイパーリンクされる可能性がある:
-
:py:mod:
¶ 参照モジュール;ポイント付き名前を使用することができる.これはまたパッケージ名に使用されなければならない。
-
:py:func:
¶ Python関数を参照します;ポイント付きの名前を使用することができます。キャラクタテキストは、可読性を向上させるために末尾丸括弧を含む必要はない;
add_function_parentheses
配置値はTrue
(デフォルト設定)。
-
:py:data:
¶ モジュールレベル変数を参照する.
-
:py:const:
¶ “定義された”定数を引用する.これは変更しようとしないPython変数かもしれません。
-
:py:class:
¶ 1つのクラスを参照する;ポイント付きの名前を使用することができる。
-
:py:meth:
¶ 対象を引用する方法。ロールテキストは、タイプ名およびメソッド名を含むことができ、タイプの記述に出現する場合、タイプ名を省略することができる。ポイント付きの名前をご利用いただけます。
-
:py:attr:
¶ 参照対象のデータ属性.
-
:py:exc:
¶ 引用異常。ポイント付きの名前をご利用いただけます。
-
:py:obj:
¶ タイプが指定されていないオブジェクトを参照する.有用な、例えば
default_role
それがそうです。バージョン 0.4 で追加.
このタグに含まれる名前は、モジュール名および/またはクラス名を含むことができる。例えば :py:func:`filter
名前を引用することができる ``filter` 現在のモジュールでは、またはその名前の内蔵関数に含まれる。対照的に :py:func:`foo.filter
明らかに ``filter` 関数中の foo
モジュールです。
一般に、これらのロール中の名前は、まず、これ以上限定されることなく検索され、その後、前に現在のモジュール名が追加され、その後、前に現在のモジュールおよびクラス名が追加される(あれば)。もしあなたが名前の前に点を追加した場合、この順序は逆になるだろう。例えばPythonの文書では codecs
モジュールは :py:func:`open
いつも内蔵関数のことだ. `open`()
ってこと? :func:`codecs.open それがそうです。
類似したヒューリスティック手法を用いて、その名前が現在記録されているクラスの属性であるか否かを決定する。
また、名称が点を接頭辞とし、完全に一致する名称が見つからない場合には、対象を接尾辞と見なし、その接尾辞を有する全ての対象名を検索する。例えば :py:meth:`.TarFile.close
引用 ``tarfile.TarFile.close()` 関数は、現在のモジュールがそうでなくても tarfile
それがそうです。これは不明確になる可能性があるので、複数の可能な一致がある場合、あなたはSphinxから警告を受けるだろう。
注意してください ~
and .
接頭辞: :py:meth:`~.TarFile.close
引用する ``tarfile.TarFile.close()` 方法は、しかし、リンクタイトルはわずかになることがわかります。 close()
それがそうです。
Cドメイン¶
Cドメイン(名前 c )C APIに適した文書作成。
-
.. c:member::
declaration
¶ -
.. c:var::
declaration
¶ C構造メンバまたは変数を記述する.署名例::
.. c:member:: PyObject *PyTypeObject.tp_bases
この二つの指示の間の違いはただ表面的なものだ。
-
.. c:function::
function prototype
¶ C関数を記述しています署名は、Cに示すように、例えば、:
.. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
RESTインターコネクションプログラムによって解析されないので、署名に逆スラッシュ変換星番号を使用する必要はありません。
-
.. c:macro::
name
¶ -
.. c:macro::
name(arg list)
C言語マクロ、すなわちC言語を記述する
#define
,書き換えテキストはない.バージョン 3.0 で追加: 関数パターン変数。
-
.. c:struct::
name
¶ C構造を記述する.
バージョン 3.0 で追加.
-
.. c:union::
name
¶ 1つのCセットが記載されている。
バージョン 3.0 で追加.
-
.. c:enum::
name
¶ Cエニュメレーションを記述する.
バージョン 3.0 で追加.
-
.. c:enumerator::
name
¶ C枚挙数を記述する.
バージョン 3.0 で追加.
-
.. c:type::
typedef-like declaration
¶ -
.. c:type::
name
Cタイプは、tyecifまたはタイプが指定されていないエイリアスとして記述される。
クロス引用C構造¶
以下の役割は,C言語構造に対する交差引用を作成する(文書中にこれらの構造が定義されていれば).
匿名実体.¶
Cは、匿名構造、列挙、および連携をサポートする。記録のために、それらのために最初の名前を指定しなければなりません。 @
, e.g., @42
or @data
. These names can also be used in cross-references, though nested symbols will be found even when omitted. The @...
名前は常に [[anonymous]] (リンクとしてかもしれない).
例::
.. c:struct:: Data
.. c:union:: @data
.. c:var:: int a
.. c:var:: double b
Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
これは次のようになります
明示的な引用: Data.[anonymous].a
それがそうです。速記参考: Data.a
それがそうです。
バージョン 3.0 で追加.
別名声明.¶
場合によっては、インターフェース概要を作成する際など、マスタ文書以外の他の場所に宣言を列挙することが有用である可能性がある。以下の指示は、この目的に使用することができる。
内接式とタイプ¶
-
:c:expr:
¶ -
:c:texpr:
¶ 内部接続コードにC式またはキー入力を挿入する (
cpp:expr
)またはイントラネットテキスト (cpp:texpr
)。例えば:.. c:var:: int a = 42 .. c:function:: int f(int i) An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`). A type: :c:expr:`const Data*` (or as text :c:texpr:`const Data*`).
以下のようになる。
-
int
a
= 42¶
-
int
f
(int i)¶
1つの式:
a * f(a)
(またはテキストとして: a * f(a) )。Aタイプ:
const Data*
(またはテキスト形式 const Data* )。バージョン 3.0 で追加.
-
int
命名空間.¶
バージョン 3.1 で追加.
C言語自体は名前空間をサポートしていないが,文書中でそれを模倣することが有用である場合があり,たとえば,代替宣言を表示するために用いられる.この機能はまた、その親宣言から分離されるように、構造/連携/列挙されたメンバを記録するために使用されてもよい。
3つの名前空間命令を使用して現在のスコープを変更することができる.スタック宣言を管理しています c:namespace
スタックをリセットし,与えられたスコープを変更する.
♪the c:namespace-push
命令は,スコープを現在のスコープの所与の内部スコープに変更する.
♪the c:namespace-pop
指令は最も近いものを破棄した. c:namespace-push
指令する。
-
.. c:namespace::
scope specification
¶ 後続オブジェクトの現在のスコープを与えられたスコープに変更し,名前空間命令スタックをリセットする.ネストされたスコープは、例えば、点分離によって指定されてもよいことに留意されたい。
.. c:namespace:: Namespace1.Namespace2.SomeStruct.AnInnerStruct
すべての後続オブジェクトは,その名前宣言時に接頭辞を持つスコープとして定義される.現在の範囲から後続の交差参照を探索する.
Vbl.使用
NULL
あるいは…。0
スコープは大域スコープに変更されるからである.
-
.. c:namespace-push::
scope specification
¶ 現在の範囲に対して範囲を変更します。例えば、::の後
.. c:namespace:: A.B .. c:namespace-push:: C.D
現在の範囲は
A.B.C.D
それがそうです。
-
.. c:namespace-pop::
¶ 前の1つを破棄する.
c:namespace-push
指令(命令) not オシロスコープを一つポップアップすればいい)。例えば、::の後.. c:namespace:: A.B .. c:namespace-push:: C.D .. c:namespace-pop::
現在の範囲は
A.B
() notA.B.C
)。もし前になかったら
c:namespace-push
指示は使用されたが、一つしかなかった。c:namespace
命令は,現在のスコープを大域スコープとしてリセットする.つまり、.. c:namespace:: A.B
これは以下のようなものです.. c:namespace:: NULL .. c:namespace-push:: A.B
構成変数¶
見 Cドメインのオプション それがそうです。
C++ドメイン¶
C++ドメイン(名前 cpp )C++プロジェクトをサポートします。
実体を宣言するための命令¶
The following directives are available. All declarations can start with a
visibility statement (public
, private
or protected
).
-
.. cpp:class::
class specifier
¶ -
.. cpp:struct::
class specifier
¶ クラス/構造を記述することは、例えば、継承仕様を有することができる。
.. cpp:class:: MyClass : public MyBase, MyOtherBase
間の違い
cpp:class
そしてcpp:struct
ただし,表面的には,出力に現れるプレフィックスとインデックスに表示される説明子である.クラスは、入れ子スコープにおいて直接宣言することができ、例えば、:
.. cpp:class:: OuterScope::MyClass : public MyBase, MyOtherBase
クラステンプレートは、以下のように宣言することができる。
.. cpp:class:: template<typename T, std::size_t N> std::array
あるいは改行を使用します:
.. cpp:class:: template<typename T, std::size_t N> \ std::array
完全テンプレート専門化と部分テンプレート専門化は以下のように宣言できる.
.. cpp:class:: template<> \ std::array<bool, 256> .. cpp:class:: template<typename T> \ std::array<T, 42>
バージョン 2.0 で追加: ♪the
cpp:struct
指令する。
-
.. cpp:function::
(member) function prototype
¶ 記述関数またはメンバ関数、例えば、:
.. cpp:function:: bool myMethod(int arg1, std::string arg2) A function with parameters and types. .. cpp:function:: bool myMethod(int, double) A function with unnamed parameters. .. cpp:function:: const T &MyClass::operator[](std::size_t i) const An overload for the indexing operator. .. cpp:function:: operator bool() const A casting operator. .. cpp:function:: constexpr void foo(std::string &bar[2]) noexcept A constexpr function. .. cpp:function:: MyClass::MyClass(const MyClass&) = default A copy constructor with default implementation.
関数テンプレートは、以下のように記述されてもよい。
.. cpp:function:: template<typename U> \ void print(U &&u)
関数テンプレートに特化する:
.. cpp:function:: template<> \ void print(int i)
-
.. cpp:member::
(member) variable declaration
¶ -
.. cpp:var::
(member) variable declaration
¶ 記述変数またはメンバ変数、例えば:
.. cpp:member:: std::string MyClass::myMember .. cpp:var:: std::string MyClass::myOtherMember[N][M] .. cpp:member:: int a = 42
変数テンプレートは、以下のように記述されてもよい。
.. cpp:member:: template<class T> \ constexpr T pi = T(3.1415926535897932385)
-
.. cpp:type::
typedef declaration
¶ -
.. cpp:type::
name
-
.. cpp:type::
type alias declaration
タイプ定義宣言、タイプ別名宣言、または指定されていないタイプを有する単純なタイプ名、例えば、:
.. cpp:type:: std::vector<int> MyList A typedef-like declaration of a type. .. cpp:type:: MyContainer::const_iterator Declaration of a type alias with unspecified type. .. cpp:type:: MyType = std::unordered_map<int, std::string> Declaration of a type alias.
タイプ別名もテンプレート化することができます:
.. cpp:type:: template<typename T> \ MyContainer = std::vector<T>
例を以下に示す.
-
typedef std::vector<int>
MyList
¶ 1つのタイプのクラスtyecif宣言。
-
type
MyContainer
::
const_iterator
¶ 宣言は、タイプが指定されていないタイプの別名を有する。
-
using
MyType
= std::unordered_map<int, std::string>¶ タイプ別名の声明。
-
typedef std::vector<int>
-
.. cpp:enum::
unscoped enum declaration
¶ -
.. cpp:enum-struct::
scoped enum declaration
¶ -
.. cpp:enum-class::
scoped enum declaration
¶ 記述(スコープ限定の)列挙は,指定されたベースタイプを用いることが可能である.スコープを限定しないエニュメレーション内宣言のどの列挙数もエニュメレーションスコープと親アクションドメインで宣言される.例:
.. cpp:enum:: MyEnum An unscoped enum. .. cpp:enum:: MySpecificEnum : long An unscoped enum with specified underlying type. .. cpp:enum-class:: MyScopedEnum A scoped enum. .. cpp:enum-struct:: protected MyScopedVisibilityEnum : std::underlying_type<MySpecificEnum>::type A scoped enum with non-default visibility, and with a specified underlying type.
-
.. cpp:enumerator::
name
¶ -
.. cpp:enumerator::
name = constant
列挙数を記述し、その値を定義することを選択することができる。
.. cpp:enumerator:: MyEnum::myEnumerator .. cpp:enumerator:: MyEnum::myOtherEnumerator = 42
-
.. cpp:union::
name
¶ 労働組合を説明する。
バージョン 1.8 で追加.
-
.. cpp:concept::
template-parameter-list name
¶ 警告
概念の支援は実験的である.それは現在の標準草案と概念技術規範に基づいている。機能の発展にともない,これらの機能が変化する可能性がある.
概念を記述する。それはちょうどテンプレートパラメータリストを持っていなければならない。この名前は、ネストされた名前であってもよい。例::
.. cpp:concept:: template<typename It> std::Iterator Proxy to an element of a notional sequence that can be compared, indirected, or incremented. **Notation** .. cpp:var:: It r An lvalue. **Valid Expressions** - :cpp:expr:`*r`, when :cpp:expr:`r` is dereferenceable. - :cpp:expr:`++r`, with return type :cpp:expr:`It&`, when :cpp:expr:`r` is incrementable.
これは以下のようになる.
-
template<typename
It
>
conceptstd
::
Iterator
¶ 概念系列中の要素を比較、間接的、または増加させることができるエージェント。
Notation
有効表現.
バージョン 1.5 で追加.
-
template<typename
匿名実体.¶
C++は、匿名名前空間、クラス、列挙、および連携をサポートします。記録のために、それらのために最初の名前を指定しなければなりません。 @
, e.g., @42
or @data
. These names can also be used in cross-references and (type) expressions, though nested symbols will be found even when omitted. The @...
名前は常に [[anonymous]] (リンクとしてかもしれない).
例::
.. cpp:class:: Data
.. cpp:union:: @data
.. cpp:var:: int a
.. cpp:var:: double b
Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
これは次のようになります
明示的な引用: Data::[anonymous]::a
それがそうです。速記参考: Data::a
それがそうです。
バージョン 1.8 で追加.
別名声明.¶
場合によっては、例えば、クラス·インターフェースの概要を作成する際に、マスタ文書以外の他の場所に宣言を列挙することが有用である可能性がある。以下の指示は、この目的に使用することができる。
-
.. cpp:alias::
name or function signature
¶ 1つ以上の別名宣言を挿入する。全ての実体は
cpp:any
役。関数の名前(完全署名とは逆)が与えられた場合、関数のすべての再ロードがリストされる。例えば:
.. cpp:alias:: Data::a overload_example::C::f
Vbl.成る
考えてみてください
.. cpp:alias:: void overload_example::C::f(double d) const void overload_example::C::f(double d)
Vbl.成る
バージョン 2.0 で追加.
制約されたテンプレート¶
警告
概念の支援は実験的である.それは現在の標準草案と概念技術規範に基づいている。機能の発展にともない,これらの機能が変化する可能性がある.
注釈
Sphinxは現在サポートしていません requires
条文。
占位符¶
宣言は、制約されたテンプレートパラメータまたはキーワードを導入するために、概念の名前を使用することができる auto
制約されていないテンプレートパラメータを導入するには、以下の操作を実行してください。
.. cpp:function:: void f(auto &&arg)
A function template with a single unconstrained template parameter.
.. cpp:function:: void f(std::Iterator it)
A function template with a single template parameter, constrained by the
Iterator concept.
テンプレート紹介¶
簡単な制約関数やクラステンプレートを使用することができる template introduction 代替テンプレートパラメータリスト::
.. cpp:function:: std::Iterator{It} void advance(It &it)
A function template with a template parameter constrained to be an
Iterator.
.. cpp:class:: std::LessThanComparable{T} MySortedContainer
A class template with a template parameter constrained to be
LessThanComparable.
これらの呈示方式を以下に示す.
-
std::LessThanComparable{
T
}
classMySortedContainer
¶ テンプレートパラメータはLessThanCompatiableなクラステンプレートに制約される.
しかし,パラメータ互換性に関する検査は実行されないことに注意されたい.例えば Iterator{{A, B, C}}
それが有効なC++でなくても紹介として受け入れられる.
内接式とタイプ¶
-
:cpp:expr:
¶ -
:cpp:texpr:
¶ 内部接続コードとしてC++式またはキー入力を挿入する (
cpp:expr
)またはイントラネットテキスト (cpp:texpr
)。例えば:.. cpp:var:: int a = 42 .. cpp:function:: int f(int i) An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`). A type: :cpp:expr:`const MySortedContainer<int>&` (or as text :cpp:texpr:`const MySortedContainer<int>&`).
以下のようになる。
-
int
a
= 42¶
-
int
f
(int i)¶
1つの式:
a * f(a)
(またはテキストとして: a * f(a) )。Aタイプ:
const MySortedContainer<int>&
(またはテキスト形式 const MySortedContainer<int>& )。バージョン 1.7 で追加: ♪the
cpp:expr
役。バージョン 1.8 で追加: ♪the
cpp:texpr
役。-
int
命名空間.¶
デフォルトの場合,C++ドメイン中の宣言は大域スコープに置かれる.3つの名前空間命令を使用して現在のスコープを変更することができる.スタック宣言を管理しています cpp:namespace
スタックをリセットし,与えられたスコープを変更する.
♪the cpp:namespace-push
命令は,スコープを現在のスコープの所与の内部スコープに変更する.
♪the cpp:namespace-pop
指令は最も近いものを破棄した. cpp:namespace-push
指令する。
-
.. cpp:namespace::
scope specification
¶ 後続オブジェクトの現在のスコープを与えられたスコープに変更し,名前空間命令スタックをリセットする.命名空間は、C++命名空間に対応する必要はないが、例えば、クラスの名前で終わることができることに留意されたい。
.. cpp:namespace:: Namespace1::Namespace2::SomeClass::AnInnerClass
すべての後続オブジェクトは,その名前宣言時に接頭辞を持つスコープとして定義される.現在の範囲から後続の交差参照を探索する.
Using
NULL
,0
, ornullptr
as the scope will change to global scope.名前空間宣言は、例えば、以下のようにテンプレート化することもできる。
.. cpp:class:: template<typename T> \ std::vector .. cpp:namespace:: template<typename T> std::vector .. cpp:function:: std::size_t size() const
声明
size
クラステンプレートとしてのメンバ関数std::vector
それがそうです。同様に、これは、以下のコマンド宣言を使用することができる。.. cpp:class:: template<typename T> \ std::vector .. cpp:function:: std::size_t size() const
あるいは:
.. cpp:class:: template<typename T> \ std::vector
-
.. cpp:namespace-push::
scope specification
¶ 現在の範囲に対して範囲を変更します。例えば、::の後
.. cpp:namespace:: A::B .. cpp:namespace-push:: C::D
現在の範囲は
A::B::C::D
それがそうです。バージョン 1.4 で追加.
-
.. cpp:namespace-pop::
¶ 前の1つを破棄する.
cpp:namespace-push
指令(命令) not オシロスコープを一つポップアップすればいい)。例えば、::の後.. cpp:namespace:: A::B .. cpp:namespace-push:: C::D .. cpp:namespace-pop::
現在の範囲は
A::B
() notA::B::C
)。もし前になかったら
cpp:namespace-push
指示は使用されたが、一つしかなかった。cpp:namespace
命令は,現在のスコープを大域スコープとしてリセットする.つまり、.. cpp:namespace:: A::B
これは以下のようなものです.. cpp:namespace:: nullptr .. cpp:namespace-push:: A::B
バージョン 1.4 で追加.
情報フィールドリスト¶
C++命令は、以下の情報フィールドをサポートします(なお参照 情報フィールドリスト ):
param, parameter, arg, argument: Description of a parameter.
tparam :テンプレートパラメータ説明。
returns, return: Description of a return value.
throws, throw, exception: Description of a possibly thrown exception.
交差引用.¶
これらの役割は与えられた宣言タイプにリンクされている:
-
:cpp:any:
¶ -
:cpp:class:
¶ -
:cpp:struct:
¶ -
:cpp:func:
¶ -
:cpp:member:
¶ -
:cpp:var:
¶ -
:cpp:type:
¶ -
:cpp:concept:
¶ -
:cpp:enum:
¶ -
:cpp:enumerator:
¶ 名称別にC++宣言を参照(詳細については、以下を参照)。名前はリンクの位置に対して適切に限定しなければならない.
バージョン 2.0 で追加: ♪the
cpp:struct
役としてcpp:class
役。
テンプレートパラメータ/パラメータ付き参照に関する説明
これらのキャラクターはライオンのイメージに従っています 交差引用文法 規則。これは,引用(部分)テンプレートに特化する際に気をつけなければならないことを意味し,たとえばリンクが以下のようになると :cpp:class:`MyClass<int>
.これは指向と解釈されています ``int` タイトルは MyClass
それがそうです。この場合、逆スラッシュを用いて左尖括弧を回転させると、以下のようになる。 :cpp:class:`MyClass\<int>
`.
タイトルをカスタマイズする必要がない場合には、内部連結式にロールを用いることが有用である可能性がある。 cpp:expr
そして cpp:texpr
このうち,尖括弧は転義を必要としない.
テンプレートパラメータおよびテンプレートパラメータを持たない宣言¶
非テンプレート化宣言にリンクするためには、名前は入れ子名でなければならない。 f
あるいは…。 MyClass::f
それがそうです。
再負荷関数¶
その名前参照(メンバ)関数のみが使用される場合、参照は、任意のマッチング再ロードを指す。♪the cpp:any
そして cpp:func
ロールは、完全な関数宣言に過ぎない別のフォーマットを使用する。これは完全にマッチする過負荷と解析される.例えば、以下のクラス宣言を考える。
引用使用 cpp:func
キャラクター:
Arbitrary overload:
C::f
,C::f()
Also arbitrary overload:
C::f()
,C::f()
Specific overload:
void C::f()
,void C::f()
Specific overload:
void C::f(int)
,void C::f(int)
Specific overload:
void C::f(double)
,void C::f(double)
Specific overload:
void C::f(double) const
,void C::f(double) const
注意してください。 add_function_parentheses
構成変数は特定の再ロード参照に影響を与えない.
テンプレート化声明¶
以下の宣言があると仮定する.
一般に、参照は、テンプレートパラメータ宣言と名プレフィックスを限定するテンプレート実パラメータを含まなければならない。例:
template\<typename TOuter> Wrapper::Outer
(template<typename TOuter> Wrapper::Outer
)template\<typename TOuter> template\<typename TInner> Wrapper::Outer<TOuter>::Inner
(template<typename TOuter> template<typename TInner> Wrapper::Outer<TOuter>::Inner
)
現在,テンプレートパラメータ識別子が等しい文字列である場合にのみ,探索が成功している.つまり、 template\<typename UOuter> Wrapper::Outer
効きませんよ。
略字表示法として,テンプレートパラメータリストを省略すると,発見は主テンプレートや非テンプレートを用いるが,部分テンプレートに特化するわけではない.これは、以下の参照も適用されることを意味する。
Wrapper::Outer
(Wrapper::Outer
)Wrapper::Outer::Inner
(Wrapper::Outer::Inner
)template\<typename TInner> Wrapper::Outer::Inner
(template<typename TInner> Wrapper::Outer::Inner
)
(完全)テンプレート特化認証¶
以下の宣言があると仮定する.
In general the reference must include a template parameter list for each
template argument list. The full specialisation above can therefore be
referenced with template\<> Outer\<int>
(template<>
Outer<int>
) and template\<> template\<> Outer\<int>::Inner\<bool>
(template<> template<> Outer<int>::Inner<bool>
). As a
shorthand the empty template parameter list can be omitted, e.g.,
Outer\<int>
(Outer<int>
) and Outer\<int>::Inner\<bool>
(Outer<int>::Inner<bool>
).
部分テンプレート専門化¶
次の宣言を仮定する.
References to partial specialisations must always include the template
parameter lists, e.g., template\<typename T> Outer\<T*>
(template<typename T> Outer<T*>
). Currently the lookup only
succeed if the template parameter identifiers are equal strings.
構成変数¶
見 C++ドメインのオプション それがそうです。
標準域.¶
いわゆる“標準”ドメインは,自分のドメインを必要としないすべてのタグを収集する.その指示と役割はドメイン名接頭辞を持っていない。
標準ドメインもカスタムオブジェクト記述の位置であり,使用する. add_object_type()
APIは、置かれている。
コマンドラインプログラムを記録することを可能にする命令のセットがある:
-
.. option::
name args, name args, ...
¶ コマンドラインパラメータまたはスイッチを記述します。オプションパラメータ名は括弧で囲まれている.例:
.. option:: dest_dir Destination directory. .. option:: -m <module>, --module <module> Run a module as a script.
この命令は、所与のオプションのための交差参照先を作成し、通過することができます。
option
(本例では、次のようなものを使用します:option:`dest_dir
ああ, `-m`
,または `--module`
`)cmdoption
コマンドは使用を推奨しない別名ですoption
指令する。
-
.. program::
name
¶ 像
py:currentmodule
したがって,この命令は何の出力も生成しない.逆に、Sphinxに以下のすべての内容を通知するために使用されます。option
コマンドレコード名のプログラムのオプション name それがそうです。もしあなたが使うなら
program
あなたはあなたのを限定しなければなりませんoption
役割ですので、以下のような場合があります。.. program:: rm .. option:: -r Work recursively. .. program:: svn .. option:: -r revision Specify the revision to work upon.
それで?
:option:`rm -r
最初の選択肢のことだ. `svn -r`
“二番目のことです”プログラム名にはスペースを含めることができる(文書サブコマンドが必要であれば、
svn add
そしてsvn commit
また)。バージョン 0.5 で追加.
ドメインにバインドされていない非常に汎用的なオブジェクト記述命令もあります
JavaScriptドメイン¶
JavaScriptドメイン(名前) js )は、以下の指示を提供します。
-
.. js:module::
name
¶ このコマンドは,後のオブジェクト宣言にモジュール名を設定する.モジュール名は、グローバルモジュールインデックスおよび交差参照に使用される。この指示はこのようなオブジェクトタイトルを作成しません
py:class
例を挙げましょうデフォルトの場合、この命令は、リンク可能エンティティを作成し、グローバルモジュールインデックスにエントリを作成しない限り、エントリを作成する。
noindex
オプションが指定されました。このオプションが指定された場合、命令は、現在のモジュール名のみを更新します。バージョン 1.6 で追加.
-
.. js:function::
name(signature)
¶ JavaScript関数やメソッドを記述する.パラメータをオプションパラメータとして記述する場合は、四角括弧を使用してください documented Python署名に使います。
フィールドを使用して、パラメータおよびその予期されるタイプ、関数によって引き起こされる可能性のあるエラー、および返された値に関するより多くの詳細な情報を提供することができます:
.. js:function:: $.getJSON(href, callback[, errback]) :param string href: An URI to the location of the resource. :param callback: Gets called with the object. :param errback: Gets called in case the request fails. And a lot of other text so we need multiple lines. :throws SomeError: For whatever reason in that case. :returns: Something.
これは次のようになります
-
$.
getJSON
(href, callback[, errback])¶ - 引数
href (string) -- リソース位置を指すURI.
callback -- オブジェクトコールを使用します。
errback -- 要求が失敗した場合に呼び出します。他にも多くのテキストがあるので、私たちは多くの行が必要だ。
- 例外
SomeError -- どんな理由でも、この場合。
- 戻り値
何かがあります。
-
-
.. js:method::
name(signature)
¶ この指令は別名である
js:function
しかし,クラスオブジェクト上のメソッドとして実現される関数を記述している.バージョン 1.6 で追加.
-
.. js:class::
name
¶ 作成対象の構造関数を記述する.これは基本的に関数に似ていますが class 接頭辞::
.. js:class:: MyAnimal(name[, age]) :param string name: The name of the animal :param number age: an optional age for the animal
これは次のようになります
-
class
MyAnimal
(name[, age])¶ - 引数
name (string) -- 動物の名前
age (number) -- 動物のオプション年齢
-
class
-
.. js:data::
name
¶ グローバル変数または定数を記述する.
-
.. js:attribute::
object.name
¶ この属性を記述する name の 客体. それがそうです。
これらの役割を提供することは、説明されたオブジェクトを参照するためである。
ReStrucureTextドメイン¶
ReStrucredTextドメイン(名前 rst )は、以下の指示を提供します。
-
.. rst:directive::
name
¶ REST命令を記述します。♪the name 単一の命令名または実際の命令文法であってもよい (.. 接頭辞と :: 接尾辞)は、異なる方法で提示されるパラメータを含む。例えば:
.. rst:directive:: foo Foo description. .. rst:directive:: .. bar:: baz Bar description.
次のようになります
-
.. rst:directive:option::
name
¶ REST命令のオプションを説明します。♪the name 単一のオプション名であってもよいし、コロンで区切られたパラメータを有するオプション名であってもよい。 (
:
)。例えば:.. rst:directive:: toctree .. rst:directive:option:: caption: caption of ToC .. rst:directive:option:: glob
次のようになります
-
.. toctree::
-
:glob:
¶
-
オプション
-
:type:
description of argument (text)¶ オプション値のタイプを記述する.
例えば:
.. rst:directive:: toctree .. rst:directive:option:: maxdepth :type: integer or no value
バージョン 2.1 で追加.
-
これらの役割を提供することは、説明されたオブジェクトを参照するためである。
数学の分野¶
数学域(名称 math )は、以下の役割を提供します。