MetalとC++の違い

提供: MonoBook
2022年6月8日 (水) 02:11時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

MetalC++14をベースに拡張と制限を加えたもの。

オーバーロード[編集 | ソースを編集]

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

テンプレート[編集 | ソースを編集]

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

プリプロセッサ[編集 | ソースを編集]

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

制限事項[編集 | ソースを編集]

  • ラムダ式
  • dynamic_cast 演算子
  • typeid 演算子
  • new および delete 演算子
  • noexcept 演算子
  • goto 文
  • register および thread_local 属性
  • virtual 属性
  • 派生クラス
  • 例外処理
  • C++の標準ライブラリ
    • 代わりにMetalの標準ライブラリが用意されている。
  • ポインタに若干の制限がある。
    • エントリーポイントの引数はポインタで宣言する必要がある。
    • device, constant, threadgroup, threadgroup_imageblockもポインタ。
    • 関数ポインタはMetal 2.3から使える。それ以前のバージョンでは使えない。

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

関連項目[編集 | ソースを編集]