| 1140 | } |
| 1141 | |
| 1142 | void assign(const any &obj, bool raw = false) |
| 1143 | { |
| 1144 | if (&obj != this && obj.mDat != mDat) { |
| 1145 | if (mDat != nullptr && obj.mDat != nullptr && raw) { |
| 1146 | if (mDat->protect_level != 0 || obj.mDat->protect_level > 0) |
| 1147 | throw cs::runtime_error("The variable has been protected"); |
| 1148 | mDat->data.copy_store(obj.mDat->data); |
| 1149 | } |
| 1150 | else { |
| 1151 | recycle(); |
| 1152 | if (obj.mDat != nullptr) |
| 1153 | mDat = get_allocator().alloc(1, obj.mDat->data); |
| 1154 | else |
| 1155 | mDat = nullptr; |
| 1156 | } |
| 1157 | } |
| 1158 | } |
| 1159 | |
| 1160 | template <typename T> |
| 1161 | void assign(const T &dat, bool raw = false) |
no test coverage detected