From 2ed61b0ee1d18547d1dc662bf538c7eaab4886f7 Mon Sep 17 00:00:00 2001 From: Phil Christensen Date: Wed, 15 Feb 2017 20:37:04 -0800 Subject: C++ conformance fixes (MSVC /permissive-) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We (the Microsoft C++ team) use the dolphin project as part of our "Real world code" tests. I noticed a few issues in windows specific code when building dolphin with the MSVC compiler in its conformance mode (/permissive-). For more information on /permissive- see our blog https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/. These changes are to address 3 different types of issues: 1) Use of qualified names in member declarations struct A {      void A::f() { } // error C4596: illegal qualified name in member declaration                      // remove redundant 'A::' to fix }; 2) Binding a non-const reference to a temporary struct S{};    // If arg is in 'in' parameter, then it should be made const. void func(S& arg){}    int main() {    //error C2664: 'void func(S &)': cannot convert argument 1 from 'S' to 'S &'    //note: A non-const reference may only be bound to an lvalue    func( S() );       //Work around this by creating a local, and using it to call the function    S s;    func( s ); } 3) Add missing #include Because of the workaround you are using in the code you will need to include this. This is because of changes in the libraries and not /permissive- --- Source/Core/VideoBackends/D3D12/TextureCache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoBackends/D3D12/TextureCache.cpp') diff --git a/Source/Core/VideoBackends/D3D12/TextureCache.cpp b/Source/Core/VideoBackends/D3D12/TextureCache.cpp index 4e297dc7e8..59198dca8d 100644 --- a/Source/Core/VideoBackends/D3D12/TextureCache.cpp +++ b/Source/Core/VideoBackends/D3D12/TextureCache.cpp @@ -499,7 +499,7 @@ void TextureCache::ConvertTexture(TCacheEntryBase* entry, TCacheEntryBase* uncon g_renderer->RestoreAPIState(); } -D3D12_SHADER_BYTECODE GetConvertShader12(std::string& Type) +D3D12_SHADER_BYTECODE GetConvertShader12(const std::string& Type) { std::string shader = "#define DECODE DecodePixel_"; shader.append(Type); -- cgit v1.2.3