⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optionalvalue.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
字号:
/* ////////////////////////////////////////////////////////////////////////////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This software is supplied under the terms of a license agreement or//     nondisclosure agreement with Intel Corporation and may not be copied//     or disclosed except in accordance with the terms of that agreement.//          Copyright(c) 2004-2005 Intel Corporation. All Rights Reserved.//////*/#ifndef __OPTIONALVALUE_H__#define __OPTIONALVALUE_H__template<class T> class OptionalValue{public:    OptionalValue() : m_ptr(0) {}    OptionalValue(const OptionalValue &value)    {        if(value.m_ptr) *m_ptr = value;        else             m_ptr = 0;    }    OptionalValue& operator=(const OptionalValue& value)    {        if(this != &value)        {            if(value.m_ptr)  Create() = value;            else             m_ptr    = 0;        }        return *this;    }    ~OptionalValue() { Destroy(); }    operator       T&()       { return *m_ptr; }    operator const T&() const { return *m_ptr; }    T &Create()    {        if(m_ptr) delete m_ptr;        m_ptr   = new T;        return *m_ptr;    }    void Destroy() { if(m_ptr) delete m_ptr; }    bool IsExist() const { return m_ptr != 0; }protected:    T*   m_ptr;};template<class T> class OptionalRefValue{public:    OptionalRefValue() : m_ptr(0), m_isOwn(false) {}    ~OptionalRefValue() { if(m_isOwn) delete m_ptr; }    operator       T&()       { return *m_ptr; }    operator const T&() const { return *m_ptr; }    T &CreateOwn()    {        if(m_isOwn) delete m_ptr;        m_ptr   = new T;        m_isOwn = true;        return *m_ptr;    }    void SetRef(const T &reference)    {        if(m_isOwn) delete m_ptr;        m_ptr = (T*)&reference;        m_isOwn = false;    }    bool IsOwn() const { return m_isOwn; }protected:    T*   m_ptr;    bool m_isOwn;};#endif // __OPTIONALVALUE_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -