return power of 2 up to size_tracker elements
| 265 | |
| 266 | // return power of 2 up to size_tracker elements |
| 267 | size_t powerOf2(size_t sz) |
| 268 | { |
| 269 | size_t shifts = 0; |
| 270 | |
| 271 | if (sz) |
| 272 | sz -= 1; |
| 273 | else |
| 274 | return 0; |
| 275 | |
| 276 | while (sz) { |
| 277 | sz >>= 1; |
| 278 | ++shifts; |
| 279 | } |
| 280 | |
| 281 | return shifts < size_elements ? shifts : size_elements; |
| 282 | } |
| 283 | |
| 284 | |
| 285 | } // namespace local |