44#if !defined(OWL_PROPERTY_H)
48#if defined(BI_HAS_PRAGMA_ONCE)
77#ifndef STRICT_PROPERTY_SYNTAX
78 operator T() {
return Content; }
85#ifndef STRICT_PROPERTY_SYNTAX
114#ifndef STRICT_PROPERTY_SYNTAX
115 operator T() {
return Content; }
144 operator const T&()
const;
173 operator T*() {
return &Content;}
174 operator const T&() {
return Content; }
180 TConstObjProperty(){}
187template <
class T,
class I>
209template <
class T,
class I>
213#if defined(BI_COMP_GNUC)
240template <
class T,
class I>
287 operator T() {
return Get(); }
311 operator T*() {
return &Get(); }
312 operator const T&()
const {
return Get(); }
361 operator T*() {
return &Get(); }
362 operator const T&() {
return Get(); }
368 TFuncObjPropertyGet(){}
404 TFuncObjPropertyPut(){}
419 operator T() {
return Content; }
445 operator T*() {
return Content; }
446 operator const T&() {
return *Content; }
458 TFuncObjPropertyVarPut(){}
465template <
class T,
int index>
477 TFuncPropertyIdxGet(){}
483template <
class T,
int index>
492 operator T*() {
return &Get(index);}
493 operator const T&() {
return Get(index); }
499 TFuncObjPropertyIdxGet(){}
505template <
class T,
int index>
523template <
class T,
int index>
541template <
class T,
int index>
551 operator T() {
return Get(index); }
565template <
class T,
int index>
575 operator T*() {
return &Get(index);}
576 operator const T&()
const {
return Get(index); }
582 T&
operator=( T& t) { Put(index,t);
return Get(index); }
591 TFuncObjPropertyIdx(){}
599#define GETFUNCTOR(T,func) \
600 Functor((TFunctor0<T>*)nullptr, func)
601#define PUTFUNCTOR(T,func) \
602 Functor((TFunctorV1<T>*)nullptr, func)
603#define GETPUTFUNCTOR(T,funcGet,funcPut) \
604 Functor((TFunctor0<T>*)nullptr, funcGet),\
605 Functor((TFunctorV1<T>*)nullptr, funcPut)
607#define GETOBJFUNCTOR(T,func) \
608 Functor((TFunctor0<T&>*)nullptr, func)
609#define PUTOBJFUNCTOR(T,func) \
610 Functor((TFunctorV1<const T&>*)nullptr, func)
611#define GETPUTOBJFUNCTOR(T,funcGet,funcPut) \
612 Functor((TFunctor0<T&>*)nullptr, funcGet),\
613 Functor((TFunctorV1<const T&>*)nullptr, funcPut)
615#define GETMFUNCTOR(T,type,memberFunc) \
616 Functor((TFunctor0<T>*)nullptr, *this, &type::memberFunc)
617#define PUTMFUNCTOR(T,type,memberFunc) \
618 Functor((TFunctorV1<T>*)nullptr, *this, &type::memberFunc)
619#define GETPUTMFUNCTOR(T,type,memberGet,memberPut) \
620 Functor((TFunctor0<T>*)nullptr, *this, &type::memberGet),\
621 Functor((TFunctorV1<T>*)nullptr, *this, &type::memberPut)
623#define GETOBJMFUNCTOR(T,type,memberFunc) \
624 Functor((TFunctor0<T&>*)nullptr, *this, &type::memberFunc)
625#define PUTOBJMFUNCTOR(T,type,memberFunc) \
626 Functor((TFunctorV1<const T&>*)nullptr, *this, &type::memberFunc)
627#define GETPUTOBJMFUNCTOR(T,type,memberGet,memberPut) \
628 Functor((TFunctor0<T&>*)nullptr, *this, &type::memberGet),\
629 Functor((TFunctorV1<const T&>*)nullptr, *this, &type::memberPut)
631#define IDXGETFUNCTOR(T,func) \
632 Functor((TFunctor1<T,int>*)nullptr, func)
633#define IDXPUTFUNCTOR(T,func) \
634 Functor((TFunctorV2<int,T>*)nullptr, func)
635#define IDXGETPUTFUNCTOR(T,funcGet,funcPut) \
636 Functor((TFunctor1<T,int>*)nullptr, funcGet),\
637 Functor((TFunctorV2<int,T>*)nullptr, funcPut)
638#define IDXGETPUTOBJFUNCTOR(T,funcGet,funcPut) \
639 Functor((TFunctor1<T&,int>*)nullptr, funcGet),\
640 Functor((TFunctorV2<int,const T&>*)nullptr, funcPut)
642#define IDXGETMFUNCTOR(T,type,memberFunc) \
643 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberFunc)
644#define IDXPUTMFUNCTOR(T,type,memberFunc) \
645 Functor((TFunctorV2<int,T>*)nullptr, *this, &type::memberFunc)
646#define IDXGETPUTMFUNCTOR(T,type,memberGet,memberPut) \
647 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberGet),\
648 Functor((TFunctorV2<int,T>*)nullptr, *this, &type::memberPut)
649#define IDXGETPUTOBJMFUNCTOR(T,type,memberGet,memberPut) \
650 Functor((TFunctor1<T,int>*)nullptr, *this, &type::memberGet),\
651 Functor((TFunctorV2<int,const T&>*)nullptr, *this, &type::memberPut)
663template <
class T>
inline
669template <
class T>
inline
677template <
class T>
inline
685template <
class T>
inline
692template <
class T>
inline
699template <
class T>
inline
707template <
class T>
inline T*
714template <
class T>
inline const T&
722template <
class T>
inline T*
731template <
class T>
inline T&
740template <
class T>
inline const T&
748template <
class T>
inline void
#define PRECONDITION(condition)
TSetter & operator=(const TSetter &val)
TSetter & operator[](I index)
class owl::TArrayProperty::TSetter Name
const T & operator()() const
TConstArrayProperty(T *value)
TGetter & operator[](I index)
class owl::TConstArrayProperty::TGetter Name
const T & operator()() const
TGetter & operator[](I index)
TConstObjArrayProperty(T *value)
class owl::TConstObjArrayProperty::TGetter Name
Read only Property container for object.
TConstObjProperty(const T &t)
const T & operator()() const
TConstProperty(const T &t)
const T operator()() const
const T & operator()() const
TFuncObjPropertyGet(const TFunctor0< T & > get)
const T & operator()() const
TFuncObjProperty< T > & operator=(const T &t)
TFuncObjProperty(const TFunctor0< T & > get, const TFunctorV1< const T & > put)
void operator()(const T &t)
~TFuncObjPropertyIdxGet()
const T & operator()() const
TFuncObjPropertyIdxGet(const TFunctor1< T &, int > get)
TFuncObjPropertyIdx(const TFunctor1< T &, int > get, const TFunctorV2< int, const T & > put)
void operator()(const T &t)
const T & operator()() const
TFuncObjPropertyIdx< T, index > & operator=(const T &t)
void operator()(const T &t)
TFuncObjPropertyIdxPut< T, index > & operator=(const T &t)
~TFuncObjPropertyIdxPut()
TFuncObjPropertyIdxPut(const TFunctorV2< int, const T & > put)
TFuncObjPropertyPut< T > & operator=(const T &t)
TFuncObjPropertyPut(const TFunctorV1< const T & > put)
void operator()(const T &t)
~TFuncObjPropertyVarPut()
TFuncObjPropertyVarPut(T &var, const TFunctorV1< const T & > put)
TFuncObjPropertyVarPut< T > & operator=(const T &t)
const T & operator()() const
void operator()(const T &t)
const T operator()() const
TFuncPropertyGet(const TFunctor0< T > get)
void operator()(const T &t)
TFuncProperty(const TFunctor0< T > get, const TFunctorV1< T > put)
TFuncProperty< T > & operator=(const T &t)
TFuncPropertyIdxGet(const TFunctor1< T, int > get)
const T operator()() const
TFuncPropertyIdx(const TFunctor1< T, int > get, const TFunctorV2< int, T > put)
TFuncPropertyIdx< T, index > & operator=(const T &t)
void operator()(const T &t)
TFuncPropertyIdxPut(const TFunctorV2< int, T > put)
void operator()(const T &t)
TFuncPropertyIdxPut< T, index > & operator=(const T &t)
TFuncPropertyPut< T > & operator=(const T &t)
void operator()(const T &t)
TFuncPropertyPut(const TFunctorV1< T > put)
TFuncPropertyVarPut(const T &var, const TFunctorV1< T > put)
void operator()(const T &t)
TFuncPropertyVarPut< T > & operator=(const T &t)
Property container for object.
TObjProperty< T > & operator=(const T &t)
const T & operator()() const
void operator()(const T &t)
TProperty< T > & operator=(const T &t)
void operator()(const T &t)
C++ Functor template implementation.
Object Windows Library (OWLNext Core)