Merge pull request #5242 from lioncash/noexcept

gl_resource_manager: Make use of noexcept on move assignment and move constructors
This commit is contained in:
Ben 2020-04-19 16:56:24 +02:00 committed by GitHub
commit ca722f1bb1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -41,13 +41,13 @@ class OGLTexture : private NonCopyable {
public: public:
OGLTexture() = default; OGLTexture() = default;
OGLTexture(OGLTexture&& o) : handle(std::exchange(o.handle, 0)) {} OGLTexture(OGLTexture&& o) noexcept : handle(std::exchange(o.handle, 0)) {}
~OGLTexture() { ~OGLTexture() {
Release(); Release();
} }
OGLTexture& operator=(OGLTexture&& o) { OGLTexture& operator=(OGLTexture&& o) noexcept {
Release(); Release();
handle = std::exchange(o.handle, 0); handle = std::exchange(o.handle, 0);
return *this; return *this;
@ -66,13 +66,13 @@ class OGLSampler : private NonCopyable {
public: public:
OGLSampler() = default; OGLSampler() = default;
OGLSampler(OGLSampler&& o) : handle(std::exchange(o.handle, 0)) {} OGLSampler(OGLSampler&& o) noexcept : handle(std::exchange(o.handle, 0)) {}
~OGLSampler() { ~OGLSampler() {
Release(); Release();
} }
OGLSampler& operator=(OGLSampler&& o) { OGLSampler& operator=(OGLSampler&& o) noexcept {
Release(); Release();
handle = std::exchange(o.handle, 0); handle = std::exchange(o.handle, 0);
return *this; return *this;
@ -91,13 +91,13 @@ class OGLShader : private NonCopyable {
public: public:
OGLShader() = default; OGLShader() = default;
OGLShader(OGLShader&& o) : handle(std::exchange(o.handle, 0)) {} OGLShader(OGLShader&& o) noexcept : handle(std::exchange(o.handle, 0)) {}
~OGLShader() { ~OGLShader() {
Release(); Release();
} }
OGLShader& operator=(OGLShader&& o) { OGLShader& operator=(OGLShader&& o) noexcept {
Release(); Release();
handle = std::exchange(o.handle, 0); handle = std::exchange(o.handle, 0);
return *this; return *this;
@ -114,13 +114,13 @@ class OGLProgram : private NonCopyable {
public: public:
OGLProgram() = default; OGLProgram() = default;
OGLProgram(OGLProgram&& o) : handle(std::exchange(o.handle, 0)) {} OGLProgram(OGLProgram&& o) noexcept : handle(std::exchange(o.handle, 0)) {}
~OGLProgram() { ~OGLProgram() {
Release(); Release();
} }
OGLProgram& operator=(OGLProgram&& o) { OGLProgram& operator=(OGLProgram&& o) noexcept {
Release(); Release();
handle = std::exchange(o.handle, 0); handle = std::exchange(o.handle, 0);
return *this; return *this;