Image Component Library (ICL)
Protected Member Functions | Private Member Functions | List of all members
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::CurvatureExtractor icl::cv::HeartrateDetector icl::cv::LensUndistortionCalibrator icl::cv::OpenCVCamCalib icl::cv::ORBFeatureDetector::FeatureSetClass icl::cv::RegionDetector icl::cv::SimpleBlobSearcher icl::cv::TemplateTracker icl::filter::AffineOp icl::filter::BilateralFilterOp icl::filter::CannyOp icl::filter::ConvolutionOp icl::filter::DitheringOp 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::ICP3D icl::geom::PointCloudNormalEstimator icl::geom::RSBPointCloudSender icl::geom::SceneLight icl::geom::ShaderUtil icl::InverseUndistortionProcessor icl::io::ConfigurableRemoteServer icl::io::GenericGrabber icl::io::Grabber icl::io::icl_openni::OpenNIContext icl::io::ImageCompressor icl::io::IntrinsicCalibrator icl::io::JPEGEncoder icl::io::RSBIOUtil< T > icl::markers::BCHCoder icl::markers::FiducialDetector icl::markers::QuadDetector icl::math::KDTree icl::math::SimplexOptimizer< T, Vector > icl::physics::Constraint icl::physics::MotionState icl::physics::PhysicsObject icl::physics::PhysicsPaper3ContextMenu icl::physics::PhysicsWorld icl::qt::AdjustGridMouseHandler icl::qt::DefineQuadrangleMouseHandler icl::qt::DynamicGUI icl::qt::GLFragmentShader icl::qt::GLImg icl::qt::GUIWidget icl::qt::RSBRemoteGUI icl::utils::IppInterface icl::utils::Mutex icl::utils::Mutex::Locker icl::utils::ProcessMonitor

Protected Member Functions

 Uncopyable ()
 Empty base constructor. More...
 

Private Member Functions

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

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:

class Picasso : public Uncopyable{
...
};
int main(){
Picasso guernica;
Picasso copyOfGuernica = guernica; // not allowed
Picasso anotherTryToCopyGuernica( guernica ); // also not allowed
return 0;
}

Constructor & Destructor Documentation

◆ Uncopyable() [1/2]

icl::utils::Uncopyable::Uncopyable ( )
inlineprotected

Empty base constructor.

◆ Uncopyable() [2/2]

icl::utils::Uncopyable::Uncopyable ( const Uncopyable other)
inlineprivate

forbidden copy constructor

Member Function Documentation

◆ operator=()

Uncopyable& icl::utils::Uncopyable::operator= ( const Uncopyable other)
inlineprivate

forbidden assignment operator


The documentation for this class was generated from the following file: