Libmagicxx v10.0.3
A modern C++23 wrapper for libmagic — the library that powers the Unix file command.
Loading...
Searching...
No Matches
Special Member Functions

Move, copy, and destruction operations. More...

Collaboration diagram for Special Member Functions:

Functions

 Recognition::Magic::MagicPrivate::MagicPrivate (MagicPrivate &&) noexcept=default
 Move constructor.
 Recognition::Magic::MagicPrivate::MagicPrivate (const MagicPrivate &)=delete
 Deleted copy constructor.
MagicPrivateRecognition::Magic::MagicPrivate::operator= (MagicPrivate &&) noexcept=default
 Move assignment operator.
MagicPrivateRecognition::Magic::MagicPrivate::operator= (const MagicPrivate &)=delete
 Deleted copy assignment operator.
 Recognition::Magic::MagicPrivate::~MagicPrivate ()=default
 Destructor.

Detailed Description

Move, copy, and destruction operations.

Special member functions controlling MagicPrivate lifetime and resource ownership transfer.

Function Documentation

◆ MagicPrivate() [1/2]

Recognition::Magic::MagicPrivate::MagicPrivate ( const MagicPrivate & )
delete

Deleted copy constructor.

MagicPrivate cannot be copied because each instance owns a unique libmagic cookie handle. Use move semantics instead.

See also
Magic::Magic(const Magic&)

◆ MagicPrivate() [2/2]

Recognition::Magic::MagicPrivate::MagicPrivate ( MagicPrivate && )
defaultnoexcept

Move constructor.

Transfers ownership of all resources from the source instance. After the move, the source is left in the Closed state (m_cookie = nullptr).

Note
The moved-from object is safe to destroy or reassign.
See also
Magic::Magic(Magic&&)

◆ operator=() [1/2]

MagicPrivate & Recognition::Magic::MagicPrivate::operator= ( const MagicPrivate & )
delete

Deleted copy assignment operator.

MagicPrivate cannot be copied because each instance owns a unique libmagic cookie handle. Use move semantics instead.

See also
Magic::operator=(const Magic&)

◆ operator=() [2/2]

MagicPrivate & Recognition::Magic::MagicPrivate::operator= ( MagicPrivate && )
defaultnoexcept

Move assignment operator.

Releases any existing resources, then transfers ownership from the source instance. After the move, the source is left in the Closed state.

Returns
Reference to this instance.
See also
Magic::operator=(Magic&&)

◆ ~MagicPrivate()

Recognition::Magic::MagicPrivate::~MagicPrivate ( )
default

Destructor.

Automatically releases the libmagic cookie via CookieT's custom deleter (calls magic_close()).

Resource Release
The CookieT unique_ptr ensures Detail::magic_close() is called when the instance is destroyed, preventing resource leaks.
See also
CookieT