CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
cxxopts::OptionValue Class Reference

#include <cxxopts.h>

Public Member Functions

template<typename T >
const Tas () const
 
size_t count () const
 
void parse (std::shared_ptr< const OptionDetails > details, const std::string &text)
 
void parse_default (std::shared_ptr< const OptionDetails > details)
 

Private Member Functions

void ensure_value (std::shared_ptr< const OptionDetails > details)
 

Private Attributes

size_t m_count = 0
 
std::shared_ptr< Valuem_value
 

Detailed Description

Definition at line 636 of file cxxopts.h.

Member Function Documentation

◆ as()

template<typename T >
const T& cxxopts::OptionValue::as ( ) const
inline

Definition at line 652 of file cxxopts.h.

References cxxopts::values::Abstract_value< T >::get(), and m_value.

652  {
653  if (m_value == nullptr) {
654  throw std::domain_error("No value");
655  }
656 
657 #ifdef CXXOPTS_NO_RTTI
658  return static_cast<const values::Standard_value<T>&>(*m_value).get();
659 #else
660  return dynamic_cast<const values::Standard_value<T>&>(*m_value).get();
661 #endif
662  }
std::shared_ptr< Value > m_value
Definition: cxxopts.h:671

◆ count()

size_t cxxopts::OptionValue::count ( void  ) const
inline

Definition at line 649 of file cxxopts.h.

References m_count.

649 { return m_count; }

◆ ensure_value()

void cxxopts::OptionValue::ensure_value ( std::shared_ptr< const OptionDetails details)
inlineprivate

Definition at line 665 of file cxxopts.h.

References m_value.

Referenced by parse(), and parse_default().

665  {
666  if (m_value == nullptr) {
667  m_value = details->make_storage();
668  }
669  }
Definition: helper.h:56
std::shared_ptr< Value > m_value
Definition: cxxopts.h:671

◆ parse()

void cxxopts::OptionValue::parse ( std::shared_ptr< const OptionDetails details,
const std::string &  text 
)
inline

Definition at line 638 of file cxxopts.h.

References ensure_value(), m_count, m_value, and submitPVValidationJobs::text.

638  {
640  ++m_count;
641  m_value->parse(text);
642  }
Definition: helper.h:56
void ensure_value(std::shared_ptr< const OptionDetails > details)
Definition: cxxopts.h:665
std::shared_ptr< Value > m_value
Definition: cxxopts.h:671

◆ parse_default()

void cxxopts::OptionValue::parse_default ( std::shared_ptr< const OptionDetails details)
inline

Definition at line 644 of file cxxopts.h.

References ensure_value(), and m_value.

644  {
646  m_value->parse();
647  }
Definition: helper.h:56
void ensure_value(std::shared_ptr< const OptionDetails > details)
Definition: cxxopts.h:665
std::shared_ptr< Value > m_value
Definition: cxxopts.h:671

Member Data Documentation

◆ m_count

size_t cxxopts::OptionValue::m_count = 0
private

Definition at line 672 of file cxxopts.h.

Referenced by count(), and parse().

◆ m_value

std::shared_ptr<Value> cxxopts::OptionValue::m_value
private

Definition at line 671 of file cxxopts.h.

Referenced by as(), ensure_value(), parse(), and parse_default().