【DirectX12】D3D12HelloWindowを試す際のメモ
DirectX12の勉強で、写経してるときにぶつかったメモです。
DirectX12の公式サンプルがgithubにあります。
その中のD3D12HelloWindowをビルドすると、こんな感じのエラーを吐きます。
解決方法ですが、標準であれば
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\winrt\wrl
のパスにあるevent.hの316行目と324行目の部分
return DelegateHelper::Traits::Callback...
を
return DelegateHelper::Traits::template Callback...
と修正します。
これでエラーがなくなり、ビルドがきれいに通ります。
ちなみに、管理者権限が必要で、VisualStudio上から直接修正できないので、VSCodeなりで修正する必要があります。
ちなみに、調べてみるとエラーの起きた理由はこちらに書いてありました。
15.8以降より、
/permissive- モードでは、コンパイラが依存する nested-name-specifier の後にある場合にテンプレート名が優先されるためには、コンパイラで template
キーワードが必要になりました。
/permissive- モードでは次のコードにより、C7510 が発生します: 'foo': use of dependent template name must be prefixed with 'template'. note: see reference to class template instantiation 'X
とのことです。注意しましょう。