diff --git a/src/core/pibase.h b/src/core/pibase.h index bb2678e2..0d3f6bcb 100644 --- a/src/core/pibase.h +++ b/src/core/pibase.h @@ -191,25 +191,25 @@ // Private data macros #define PRIVATE_DECLARATION \ - struct __Private__;\ - friend struct __Private__;\ - struct __PrivateInitializer__ {\ - __PrivateInitializer__();\ - __PrivateInitializer__(const __PrivateInitializer__ & o);\ - ~__PrivateInitializer__();\ - __PrivateInitializer__ & operator =(const __PrivateInitializer__ & o);\ - __Private__ * p;\ - };\ + struct __Private__; \ + friend struct __Private__; \ + struct __PrivateInitializer__ { \ + __PrivateInitializer__(); \ + __PrivateInitializer__(const __PrivateInitializer__ & o); \ + ~__PrivateInitializer__(); \ + __PrivateInitializer__ & operator =(const __PrivateInitializer__ & o); \ + __Private__ * p; \ + }; \ __PrivateInitializer__ __privateinitializer__; #define PRIVATE_DEFINITION_START(c) \ struct c::__Private__ { #define PRIVATE_DEFINITION_END(c) \ - };\ - c::__PrivateInitializer__::__PrivateInitializer__() {p = new c::__Private__();}\ - c::__PrivateInitializer__::__PrivateInitializer__(const c::__PrivateInitializer__ & o) {if (p) delete p; p = new c::__Private__();}\ - c::__PrivateInitializer__::~__PrivateInitializer__() {delete p; p = 0;}\ + }; \ + c::__PrivateInitializer__::__PrivateInitializer__() {p = new c::__Private__();} \ + c::__PrivateInitializer__::__PrivateInitializer__(const c::__PrivateInitializer__ & o) {if (p) delete p; p = new c::__Private__();} \ + c::__PrivateInitializer__::~__PrivateInitializer__() {delete p; p = 0;} \ c::__PrivateInitializer__ & c::__PrivateInitializer__::operator =(const c::__PrivateInitializer__ & o) {if (p) delete p; p = new c::__Private__(); return *this;} #define PRIVATE (__privateinitializer__.p) diff --git a/src/core/pibitarray.h b/src/core/pibitarray.h index e6d1c2cb..9574b439 100755 --- a/src/core/pibitarray.h +++ b/src/core/pibitarray.h @@ -101,6 +101,6 @@ private: }; inline std::ostream & operator <<(std::ostream & s, const PIBitArray & ba) {for (uint i = 0; i < ba.bitSize(); ++i) {s << ba[i]; if (i % 8 == 7) s << ' ';} return s;} -inline PICout operator <<(PICout s, const PIBitArray & ba) {s.space(); s.setControl(0, true); for (uint i = 0; i < ba.bitSize(); ++i) {s << ba[i]; if (i % 8 == 7) s << ' ';} s.restoreControl(); return s;} +inline PICout operator <<(PICout s, const PIBitArray & ba) {s.space(); s.setControl(0, true); for (uint i = 0; i < ba.bitSize(); ++i) {s << int(ba[i]); if (i % 8 == 7) s << ' ';} s.restoreControl(); return s;} #endif // PIBITARRAY_H diff --git a/src/core/pivariant.cpp b/src/core/pivariant.cpp index aa0f150b..6a71f47f 100755 --- a/src/core/pivariant.cpp +++ b/src/core/pivariant.cpp @@ -48,7 +48,9 @@ * \endcode * */ +#ifdef CUSTOM_PIVARIANT PIMap * __PIVariantInfoStorage__::map = 0; +#endif PIVariant::PIVariant() { @@ -59,7 +61,9 @@ PIVariant::PIVariant() { PIVariant & PIVariant::operator =(const PIVariant & v) { _type = v._type; _content = v._content; +#ifdef CUSTOM_PIVARIANT _info = v._info; +#endif return *this; } @@ -101,8 +105,10 @@ PIVariant::Type PIVariant::typeFromName(const PIString & tname) { PIString PIVariant::typeName() const { +#ifdef CUSTOM_PIVARIANT if ((_type == Custom) && _info) return _info->typeName; +#endif return typeName(_type); } diff --git a/src/core/pivariant.h b/src/core/pivariant.h index 7e86a0c5..719cbe5e 100755 --- a/src/core/pivariant.h +++ b/src/core/pivariant.h @@ -30,6 +30,11 @@ #include "pitime.h" #include "pimathbase.h" +#ifndef QNX +# define CUSTOM_PIVARIANT +#endif + +#ifdef CUSTOM_PIVARIANT template class __PIVariantFunctions__ { @@ -120,6 +125,7 @@ classname_to __PIVariantFunctions__::castVariant(c #define REGISTER_VARIANT_CAST_SIMPLE_H(classname_from, classname_to) REGISTER_VARIANT_CAST_H(classname_from, classname_to) #define REGISTER_VARIANT_CAST_SIMPLE_CPP(classname_from, classname_to) REGISTER_VARIANT_CAST_CPP(classname_from, classname_to) {return classname_to(v);} +#endif class PIP_EXPORT PIVariant { friend PICout operator <<(PICout s, const PIVariant & v); @@ -426,16 +432,20 @@ public: static PIVariant fromValue(const PIByteArray & c, const PIString & type) { PIVariant ret; +#ifdef CUSTOM_PIVARIANT ret._info = __PIVariantInfoStorage__::get()->map->value(type, 0); if (!ret._info) { +#endif PIVariant::Type t = typeFromName(type); if (t == Invalid) { piCout << "Can`t initialize PIVariant from unregistered type \"" << type << "\"!"; return ret; } ret._type = t; +#ifdef CUSTOM_PIVARIANT } else ret._type = Custom; +#endif ret._content = c; return ret; } @@ -454,14 +464,17 @@ private: _content.clear(); _content << v; _type = getType(); +#ifdef CUSTOM_PIVARIANT if (_type == Custom) { _info = __PIVariantInfoStorage__::get()->map->value(__PIVariantFunctions__::typeNameHelper(), 0); if (!_info) piCout << "Can`t initialize PIVariant from unregistered type!"; } else _info = 0; +#endif } template static T getAsValue(const PIVariant & v) { +#ifdef CUSTOM_PIVARIANT if (v._content.isEmpty() || !v._info) return T(); PIString cn = __PIVariantFunctions__::typeNameHelper(); piCout << "gav" << cn; @@ -476,11 +489,16 @@ private: } T ret; ba >> ret; return ret; +#else + return T(); +#endif } PIByteArray _content; PIVariant::Type _type; +#ifdef CUSTOM_PIVARIANT __PIVariantInfo__ * _info; +#endif }; diff --git a/src/math/pimathsolver.h b/src/math/pimathsolver.h index 0a1368d7..84ad2c65 100644 --- a/src/math/pimathsolver.h +++ b/src/math/pimathsolver.h @@ -27,15 +27,10 @@ /// Differential evaluations -struct TransferFunction { // ��� ������� ������������ ������� +struct TransferFunction { PIVector vector_Bm, vector_An; }; -// �����, �������� ��� �������� ������������ ������� � ������� ��� ������� ������� -// ����������� ����. ������ ������� ����. ��-���: -// ������ -// �����-����� 4-�� ������� -// ������-���������-�������� 2, 3, 4 �������� class PIP_EXPORT PIMathSolver { public: