Browse Source

C++11 (move semantics) compatible class copy/move disabling.

Not using macro this time, as some classes could want only to disable
either copy or move and with macros this would become unintuitive and
error-prone.
vectorfields
Vladimír Vondruš 15 years ago
parent
commit
2d50410dee
  1. 5
      src/AbstractShaderProgram.h
  2. 5
      src/AbstractTexture.h
  3. 5
      src/Buffer.h
  4. 5
      src/Image.h
  5. 5
      src/Mesh.h
  6. 5
      src/Object.h
  7. 5
      src/Shader.h

5
src/AbstractShaderProgram.h

@ -78,7 +78,10 @@ Basic workflow with AbstractShaderProgram subclasses is: instancing the class
and calling Mesh::draw() (see its documentation for more).
*/
class AbstractShaderProgram {
DISABLE_COPY(AbstractShaderProgram)
AbstractShaderProgram(const AbstractShaderProgram& other) = delete;
AbstractShaderProgram(AbstractShaderProgram&& other) = delete;
AbstractShaderProgram& operator=(const AbstractShaderProgram& other) = delete;
AbstractShaderProgram& operator=(AbstractShaderProgram&& other) = delete;
public:
/** @brief Logging level */

5
src/AbstractTexture.h

@ -31,7 +31,10 @@ namespace Magnum {
See Texture documentation for more information.
*/
class AbstractTexture {
DISABLE_COPY(AbstractTexture)
AbstractTexture(const AbstractTexture& other) = delete;
AbstractTexture(AbstractTexture&& other) = delete;
AbstractTexture& operator=(const AbstractTexture& other) = delete;
AbstractTexture& operator=(AbstractTexture&& other) = delete;
public:
/** @brief Texture filtering */

5
src/Buffer.h

@ -27,7 +27,10 @@ namespace Magnum {
* @brief Class for managing buffers
*/
class Buffer {
DISABLE_COPY(Buffer)
Buffer(const Buffer& other) = delete;
Buffer(Buffer&& other) = delete;
Buffer& operator=(const Buffer& other) = delete;
Buffer& operator=(Buffer&& other) = delete;
public:
/** @brief Buffer type */

5
src/Image.h

@ -42,7 +42,10 @@ transparent envelope around the data, which holds additional information about
data type and dimensions.
*/
template<size_t imageDimensions> class Image {
DISABLE_COPY(Image)
Image<imageDimensions>(const Image<imageDimensions>& other) = delete;
Image<imageDimensions>(Image<imageDimensions>&& other) = delete;
Image<imageDimensions>& operator=(const Image<imageDimensions>& other) = delete;
Image<imageDimensions>& operator=(Image<imageDimensions>&& other) = delete;
public:
const static size_t Dimensions = imageDimensions; /**< @brief Image dimension count */

5
src/Mesh.h

@ -37,7 +37,10 @@ class Buffer;
* shader as floating-point vec4)
*/
class Mesh {
DISABLE_COPY(Mesh)
Mesh(const Mesh& other) = delete;
Mesh(Mesh&& other) = delete;
Mesh& operator=(const Mesh& other) = delete;
Mesh& operator=(Mesh&& other) = delete;
public:
/** @brief Primitive type */

5
src/Object.h

@ -34,7 +34,10 @@ class Scene;
* place.
*/
class Object {
DISABLE_COPY(Object)
Object(const Object& other) = delete;
Object(Object&& other) = delete;
Object& operator=(const Object& other) = delete;
Object& operator=(Object&& other) = delete;
friend class Scene;

5
src/Shader.h

@ -34,7 +34,10 @@ namespace Magnum {
* for linking and usage.
*/
class Shader {
DISABLE_COPY(Shader)
Shader(const Shader& other) = delete;
Shader(Shader&& other) = delete;
Shader& operator=(const Shader& other) = delete;
Shader& operator=(Shader&& other) = delete;
public:
/** @brief Logging level */

Loading…
Cancel
Save