12#include "webcface/common/webcface-config.h" 
   26        : 
Field(base), index(index) {}
 
   44    std::optional<double> tryGet() 
const;
 
   51    double get()
 const { 
return tryGet().value_or(0); }
 
   70    using Field::lastName;
 
   71    using Field::lastNameW;
 
  100        return child(std::move(field));
 
  115    template <
typename CharT, std::size_t N,
 
  116              typename std::enable_if_t<std::is_same_v<CharT, char> ||
 
  117                                            std::is_same_v<CharT, wchar_t>,
 
  118                                        std::nullptr_t> = 
nullptr>
 
  126    template <std::
size_t N>
 
  141    template <
typename T,
 
  142              std::enable_if_t<std::is_integral_v<T>, std::nullptr_t> = 
nullptr>
 
  173    template <
typename F, 
typename std::enable_if_t<std::is_invocable_v<F>,
 
  174                                                    std::
nullptr_t> = 
nullptr>
 
  177            [callback = std::move(callback)](
const auto &) { callback(); });
 
  187    const Value &set(
double v) 
const;
 
  193    const Value &set(std::vector<double> v) 
const;
 
  203    template <
typename R,
 
  206        return set(traits::arrayLikeToVector(range));
 
  212    const Value &resize(std::size_t size) 
const;
 
  216    const Value &push_back(
double v) 
const;
 
  227    std::size_t size() 
const;
 
  233    template <
typename T>
 
  235        this->set(std::forward<T>(v));
 
  247        this->set(std::move(v));
 
  256    const Value &request() 
const;
 
  263    std::optional<double> tryGet() 
const;
 
  271    std::optional<NumVector> tryGetVec() 
const;
 
  276    double get()
 const { 
return tryGet().value_or(0); }
 
  285        return tryGetVec().value_or(std::vector<double>{});
 
  287    operator double()
 const { 
return get(); }
 
  288    operator std::vector<double>()
 const { 
return getVec(); }
 
  308    const Value &free() 
const;
 
  311        this->set(this->
get() + rhs);
 
  315        this->set(this->
get() - rhs);
 
  319        this->set(this->
get() * rhs);
 
  323        this->set(this->
get() / rhs);
 
  327        this->set(
static_cast<std::int32_t
>(this->
get()) % rhs);
 
  332        this->set(
static_cast<std::int32_t
>(this->
get()) << rhs);
 
  336        this->set(
static_cast<std::int32_t
>(this->
get()) >> rhs);
 
  340        this->set(
static_cast<std::int32_t
>(this->
get()) & rhs);
 
  344        this->set(
static_cast<std::int32_t
>(this->
get()) | rhs);
 
  348        this->set(
static_cast<std::int32_t
>(this->
get()) ^ rhs);
 
  356        this->set(this->
get() + 1);
 
  364        auto v = this->
get();
 
  373        this->set(this->
get() - 1);
 
  381        auto v = this->
get();
 
  394    template <
typename T, 
typename std::enable_if_t<std::is_same_v<T, Value>,
 
  395                                                    std::
nullptr_t> = 
nullptr>
 
  397        return static_cast<Field>(*this) == 
static_cast<Field>(other);
 
  399    template <
typename T, 
typename std::enable_if_t<std::is_same_v<T, Value>,
 
  400                                                    std::
nullptr_t> = 
nullptr>
 
  402        return static_cast<Field>(*this) == 
static_cast<Field>(other);
 
shared_ptrで管理されているdoubleのvector
Definition num_vector.h:20
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:170
SharedString のpublicなコンストラクタインタフェース (入力専用)
Definition encoding.h:235
配列型のValueデータの一部の要素を指定するクラス
Definition value.h:21
ValueElementRef(const Field &base, std::size_t index)
Definition value.h:25
const ValueElementRef & operator=(double v) const
Definition value.h:37
double get() const
値があればその要素を返す
Definition value.h:51
実数値またはその配列の送受信データを表すクラス
Definition value.h:61
Value operator[](StringInitializer field) const
Definition value.h:99
Value parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition value.h:157
const Value & operator/=(double rhs) const
Definition value.h:322
const Value & operator+=(double rhs) const
Definition value.h:310
const Value & operator|=(std::int32_t rhs) const
Definition value.h:343
bool operator==(const T &other) const
Valueの参照先を比較
Definition value.h:396
ValueElementRef operator[](T index) const
1次元配列型データの要素を参照する
Definition value.h:143
const Value & onChange(F callback) const
値が変化したときに呼び出されるコールバックを設定
Definition value.h:175
const Value & set(const R &range) const
配列型の値をセットする
Definition value.h:205
const Value & operator%=(std::int32_t rhs) const
Definition value.h:326
const Value & operator>>=(std::int32_t rhs) const
Definition value.h:335
double operator--(int) const
1引いたものをsetし、足す前の値を返す
Definition value.h:380
bool operator<=(const Value &) const =delete
NumVector getVec() const
値をvectorで返す
Definition value.h:284
const Value & operator*=(double rhs) const
Definition value.h:318
Value child(int index) const
Definition value.h:89
bool operator!=(const T &other) const
Definition value.h:401
double operator++(int) const
1足したものをsetし、足す前の値を返す
Definition value.h:363
bool operator>=(const Value &) const =delete
const Value & operator&=(std::int32_t rhs) const
Definition value.h:339
const Value & operator--() const
1引いたものをsetした後自身を返す
Definition value.h:372
const Value & operator-=(double rhs) const
Definition value.h:314
Value child(StringInitializer field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition value.h:81
bool operator>(const Value &) const =delete
Value operator[](const wchar_t(&static_str)[N])
Definition value.h:127
const Value & operator=(T &&v) const
数値または配列をセットする
Definition value.h:234
const Value & operator^=(std::int32_t rhs) const
Definition value.h:347
const Value & operator=(std::vector< double > v) const
vector型配列をセットする
Definition value.h:246
ValueElementRef at(std::size_t index) const
1次元配列型データの要素を参照する
Definition value.h:150
bool operator<(const Value &) const =delete
Value operator[](const char *field) const
Definition value.h:106
Value operator[](const wchar_t *field) const
Definition value.h:110
Value operator[](const CharT(&static_str)[N])
Definition value.h:119
double get() const
値を返す
Definition value.h:276
Value(const Field &base, const SharedString &field)
Definition value.h:65
const Value & operator<<=(std::int32_t rhs) const
Definition value.h:330
const Value & operator++() const
1足したものをsetした後自身を返す
Definition value.h:355
std::ostream & operator<<(std::ostream &os, const Arg &arg)
Definition func_info.cc:99
const auto & get(const AxisAngle &aa)
Definition transform.h:227
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:68
Field parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition field.cc:39
Field child(const SharedString &field) const
Definition field.cc:48
Definition array_like.h:59
#define WEBCFACE_DLL
Definition webcface-config.h:69
#define WEBCFACE_CALL
Definition webcface-config.h:106
#define WEBCFACE_NS_END
Definition webcface-config.h:113
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:112
#define WEBCFACE_CALL_FP
Definition webcface-config.h:107