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

📄 parameter.cpp

📁 利用C
💻 CPP
字号:
// Copyright (C) 2003-2005 Anders Logg.// Licensed under the GNU LGPL Version 2.1.//// First added:  2003-05-06// Last changed: 2005-12-21#include <dolfin/log/dolfin_log.h>#include "ParameterValue.h"#include "Parameter.h"using namespace dolfin;//-----------------------------------------------------------------------------Parameter::Parameter(int value) : value(0), _type(type_int){  this->value = new IntValue(value);}//-----------------------------------------------------------------------------Parameter::Parameter(uint value) : value(0), _type(type_int){  this->value = new IntValue(static_cast<int>(value));}//-----------------------------------------------------------------------------Parameter::Parameter(real value) : value(0), _type(type_real){  this->value = new RealValue(value);}//-----------------------------------------------------------------------------Parameter::Parameter(bool value) : value(0), _type(type_bool){  this->value = new BoolValue(value);}//-----------------------------------------------------------------------------Parameter::Parameter(std::string value) : value(0), _type(type_string){  this->value = new StringValue(value);}//-----------------------------------------------------------------------------Parameter::Parameter(const char* value) : value(0), _type(type_string){  std::string s(value);  this->value = new StringValue(s);}//-----------------------------------------------------------------------------Parameter::Parameter(const Parameter& parameter)  : value(0), _type(parameter._type){   switch ( parameter._type )  {  case type_int:    value = new IntValue(*parameter.value);    break;  case type_real:    value = new RealValue(*parameter.value);    break;  case type_bool:    value = new BoolValue(*parameter.value);    break;  case type_string:    value = new StringValue(*parameter.value);    break;  default:    error("Unknown parameter type: %d.", parameter._type);  }}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (int value){  *(this->value) = value;  return *this;}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (dolfin::uint value){  *(this->value) = value;  return *this;}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (real value){  *(this->value) = value;  return *this;}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (bool value){  *(this->value) = value;  return *this;}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (std::string value){  *(this->value) = value;  return *this;}//-----------------------------------------------------------------------------const Parameter& Parameter::operator= (const Parameter& parameter){  delete value;  switch ( parameter._type )  {  case type_int:    value = new IntValue(*parameter.value);    break;  case type_real:    value = new RealValue(*parameter.value);    break;  case type_bool:    value = new BoolValue(*parameter.value);    break;  case type_string:    value = new StringValue(*parameter.value);    break;  default:    error("Unknown parameter type: %d.", parameter._type);  }    _type = parameter._type;  return *this;}//-----------------------------------------------------------------------------Parameter::~Parameter(){  if ( value ) delete value;}//-----------------------------------------------------------------------------Parameter::operator int() const{  return *value;}//-----------------------------------------------------------------------------Parameter::operator dolfin::uint() const{  return *value;}//-----------------------------------------------------------------------------Parameter::operator real() const{  return *value;}//-----------------------------------------------------------------------------Parameter::operator bool() const{  return *value;}//-----------------------------------------------------------------------------Parameter::operator std::string() const{  return *value;}//-----------------------------------------------------------------------------Parameter::Type Parameter::type() const{  return _type;}//-----------------------------------------------------------------------------dolfin::LogStream& dolfin::operator<<(LogStream& stream,				      const Parameter& parameter){  switch ( parameter.type() )  {  case Parameter::type_int:    stream << "[Parameter: value = " 	   << static_cast<int>(parameter) << " (int)]";    break;  case Parameter::type_real:    stream << "[Parameter: value = "	   << static_cast<real>(parameter) << " (real)]";    break;  case Parameter::type_bool:    if ( static_cast<bool>(parameter) )      stream << "[Parameter: value = true (bool)]";    else      stream << "[Parameter: value = false (bool)]";    break;  case Parameter::type_string:    stream << "[Parameter: value = \""	   << static_cast<std::string>(parameter) << "\" (string)]";    break;  default:    error("Unknown parameter type: %d.", parameter._type);  }    return stream;}//-----------------------------------------------------------------------------

⌨️ 快捷键说明

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