差分

ナビゲーションに移動 検索に移動

MetalとC++の違い

1,328 バイト追加, 2022年6月8日 (水) 02:08
ページの作成:「MetalC++14をベースに拡張と制限を加えたもの。 == オーバーロード == MetalでもC++と同様に関数のオーバーロー…」
[[Metal]]は[[C++14]]をベースに拡張と制限を加えたもの。

== オーバーロード ==
[[Metal]]でも[[C++]]と同様に[[関数]]の[[オーバーロード]]は使用できる。ただし[[シェーダー]]の[[エントリーポイント]]となる[[関数]]に関しては[[オーバーロード]]できない。

== テンプレート ==
[[Metal]]でも[[C++]]と同様に[[テンプレート]]は使える。

== プリプロセッサ ==
[[Metal]]でも[[C++]]と同様に[[プリプロセッサ]]は使える。

==制限事項==
* ラムダ式
* dynamic_cast 演算子
* typeid 演算子
* new および delete 演算子
* noexcept 演算子
* goto 文
* register および thread_local 属性
* virtual 属性
* 派生クラス
* 例外処理
* C++の標準ライブラリ
** 代わりにMetalの標準ライブラリが用意されている。

* ポインタに若干の制限がある。
** エントリーポイントの引数はポインタで宣言する必要がある。
** 関数ポインタはMetal 2.3から使える。それ以前のバージョンでは使えない。

*再帰的関数呼び出しにも制限がある。
** Metal 2.4以降、かつ[[コンピュートシェーダー]]のみ利用可能。

ざっと見た感じC++がベースである必要性がまったくないな。

案内メニュー