Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Protected Member Functions | Private Member Functions
icl::utils::Uncopyable Class Reference

Class interface for un-copyable classes. More...

#include <Uncopyable.h>

Inheritance diagram for icl::utils::Uncopyable:
icl::core::AbstractCanvas icl::core::BayerConverter icl::core::Converter icl::core::CvMatWrapper< T > icl::core::FixedConverter icl::core::ImageRenderer icl::core::ImgBuffer icl::cv::CheckerboardDetector icl::cv::ContourDetector icl::cv::CornerDetectorCSS icl::cv::HoughLineDetector icl::cv::LensUndistortionCalibrator icl::cv::OpenCVCamCalib icl::cv::RegionDetector icl::cv::SimpleBlobSearcher icl::cv::TemplateTracker icl::filter::AffineOp icl::filter::CannyOp icl::filter::ConvolutionOp icl::filter::GaborOp icl::filter::LocalThresholdOp icl::filter::LUTOp icl::filter::LUTOp3Channel< T > icl::filter::MirrorOp icl::filter::MorphologicalOp icl::filter::MotionSensitiveTemporalSmoothing icl::filter::ProximityOp icl::geom::GenericPointCloudOutput icl::geom::ICP icl::geom::PointCloudNormalEstimator icl::geom::RansacBasedPoseEstimator icl::geom::RSBPointCloudSender icl::geom::SceneLight icl::io::GenericGrabber icl::io::Grabber icl::io::icl_openni::OpenNIContext icl::io::ImageCompressor icl::io::IntrinsicCalibrator icl::io::JPEGEncoder icl::markers::BCHCoder icl::markers::FiducialDetector icl::markers::QuadDetector icl::math::KDTree icl::math::SimplexOptimizer< T, Vector > icl::qt::DefineQuadrangleMouseHandler icl::qt::GLFragmentShader icl::qt::GLImg icl::qt::GUIWidget icl::utils::IppInterface icl::utils::Mutex icl::utils::Mutex::Locker icl::utils::ProcessMonitor

List of all members.

Protected Member Functions

 Uncopyable ()
 Empty base constructor.

Private Member Functions

 Uncopyable (const Uncopyable &other)
 forbidden copy constructor
Uncopyableoperator= (const Uncopyable &other)
 forbidden assignment operator

Detailed Description

Class interface for un-copyable classes.

In some cases, classes might not be copied e.g. if the implementation of this would be very complex and it provides no benefits to copy an instance of a particular class.
To forbid, that instance of this class might be copied, you can either implement a private copy constructor and a private assignment operator, or you can inherit the Uncopyable class.
The following example demonstrates how you can protect a picture from being copied:

        #include <ICLUtils/Uncopyable.h>
        
        class Picasso : public Uncopyable{
           ...
        }; 
        
        int main(){
          Picasso guernica;
          Picasso copyOfGuernica = guernica; // not allowed
          Picasso anotherTryToCopyGuernica( guernica ); // also not allowed
    
          return 0;
        }

Constructor & Destructor Documentation

icl::utils::Uncopyable::Uncopyable ( ) [inline, protected]

Empty base constructor.

icl::utils::Uncopyable::Uncopyable ( const Uncopyable other) [inline, private]

forbidden copy constructor


Member Function Documentation

Uncopyable& icl::utils::Uncopyable::operator= ( const Uncopyable other) [inline, private]

forbidden assignment operator


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines