📄 literalexpr.h
字号:
/****************************************************************************
* Copyright (C) 2001 Piece Wise Functions
* Carlo Galotto
* Italy
* Email: carlo.galotto@libero.it
* cgalotto@hotmail.com
*
*
* This framework is free software; you can redistribute it and/or modify
* it. This framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* The proposed framework is based upon the paper "Expression Templates" by
* Todd Veldhuizen.
****************************************************************************/
// Class: LiteralExpr
#ifndef __LTRLEXPR_H //Required for current class
#define __LTRLEXPR_H
#include <functional> // required for base classes
/****************************************************************************
* LiteralExpr represents a literal which appears in the expression. */ template <class argT, class resT = argT>
class LiteralExpr : public std::unary_function<argT, resT> { public: typedef std::unary_function<argT, resT>::argument_type argument_type;
typedef std::unary_function<argT, resT>::result_type result_type;
private: resT value; public: // Default constructor LiteralExpr() : value( resT() ) { } // Conversion constructor explicit LiteralExpr(const argument_type& v) : value(v) { } // Copy Constructor LiteralExpr(const LiteralExpr& aLiteralExpr) : value(aLiteralExpr.value) {} //Assignment Operator LiteralExpr& operator= (const LiteralExpr& aLiteralExpr)
{
if(&aLiteralExpr != this)
value = aLiteralExpr.value;
return *this;
}
// Evaluator operator result_type operator()(const argument_type& ) const { return resT(value); } // Destructor ~LiteralExpr() {} };
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -