MetalとC++の違い

提供: MonoBook
ナビゲーションに移動 検索に移動

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++がベースである必要性がまったくないな。

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