# soagen
Struct-of-Arrays for C++.
[![Sponsor](docs/images/badge-sponsor.svg)][sponsor]
[![Gitter](docs/images/badge-gitter.svg)][gitter]
<br><br>
<p align="center">
<strong>✨️ This README is a stub. Please see the HTML documentation: <a href="https://marzer.github.io/soagen/">marzer.github.io/soagen</a>✨️</strong>
</p>
<br><br>
[gitter]: https://gitter.im/marzer/community
[sponsor]: https://github.com/sponsors/marzer
# Changelog
## v0.7.0
- Fixed rvalue row corruption bug on MSVC ([info](https://developercommunity.visualstudio.com/t/C:-Corrupt-references-when-creating-a/10446877))
- Fuxed some SFINAE issues
- Added `Cols...` selector template parameter to `at()`, `front()` and `back()`
- Added `structs.mixins`
- Added copy-based fallbacks for `unordered_erase()`, `insert()`, `emplace()` and `swap_columns()` (previously they required movability)
## v0.6.0
- Fixed `swap_columns()` fast-path breaking `data()`
- Added spans
- Added `span`
- Added `is_span<>`
- Added `table::subspan()` and `table::const_subspan()`
- Added `span_type<>` and `const_span_type<>`
- Added `soa_type<>`
- Added `const_iterator_type<>`
- Added `const_row_type<>`
- Added `column_indices<>`
- Added `soagen::for_each_column()`
- Added `row::for_each_column()`
- Added generic names `first`, `second`, ..., `sixteenth` for unnamed columns 0-15
- Binary size improvements
- Documentation improvements
## v0.5.0
- Added rows to `soagen::table`
- Added iterators to `soagen::table`
- Added `soagen::table::for_each_column()`
## v0.4.0
- Fixed `soagen::is_table<>`
- Added support for emplace-constructing column values by unpacking all `std::tuple`-like types (not just the `emplacer`)
- Added support for taking `std::integral_constants` in `for_each_column()`
- Added `soagen::same_table_type<>`
- Added conversions between `soagen::row<>` specializations
- Optimized instantiation overhead for most type-traits
## v0.3.0
- Added `hpp.combined`
- Added `std::integral_constant<size_t>` to the overload set used by `for_each_column()`
- Added support for constructing rows from all `std::tuple`-like types
- Optimized bulk-swap operations
## v0.2.0
- Added `structs.annotations`
- Added `structs.attributes`
- Added `auto` option for `structs.default_constructible`
- Added `soagen::row_base`
- Added `soagen::table_base`
- Added `soagen::iterator_base`
- Added `Base` template argument to `soagen::table` for CRTP
- Added `swap_columns<>()`
- Made `column_indices` member struct into `enum class columns`
## v0.1.2
- Minor refactors.
## v0.1.1
- Minor refactors.
## v0.1.0
- First public release 🎉️
Raw data
{
"_id": null,
"home_page": "",
"name": "soagen",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "c++,soa,struct-of-arrays,structure-of-arrays,struct of arrays,structure of arrays,parallel-arrays,parallel arrays,std::vector",
"author": "",
"author_email": "Mark Gillard <mark.gillard@outlook.com.au>",
"download_url": "https://files.pythonhosted.org/packages/92/1e/a07b4cf2dbae3cbfa3287a6ab04fc6dbb7489539a7bf4ecfa201db002a6b/soagen-0.7.0.tar.gz",
"platform": null,
"description": "# soagen\r\n\r\nStruct-of-Arrays for C++.\r\n\r\n[![Sponsor](docs/images/badge-sponsor.svg)][sponsor]\r\n[![Gitter](docs/images/badge-gitter.svg)][gitter]\r\n\r\n<br><br>\r\n\r\n<p align=\"center\">\r\n\t<strong>\u2728️ This README is a stub. Please see the HTML documentation: <a href=\"https://marzer.github.io/soagen/\">marzer.github.io/soagen</a>\u2728️</strong>\r\n</p>\r\n\r\n<br><br>\r\n\r\n[gitter]: https://gitter.im/marzer/community\r\n[sponsor]: https://github.com/sponsors/marzer\r\n\r\n# Changelog\r\n\r\n## v0.7.0\r\n\r\n- Fixed rvalue row corruption bug on MSVC ([info](https://developercommunity.visualstudio.com/t/C:-Corrupt-references-when-creating-a/10446877))\r\n- Fuxed some SFINAE issues\r\n- Added `Cols...` selector template parameter to `at()`, `front()` and `back()`\r\n- Added `structs.mixins`\r\n- Added copy-based fallbacks for `unordered_erase()`, `insert()`, `emplace()` and `swap_columns()` (previously they required movability)\r\n\r\n## v0.6.0\r\n\r\n- Fixed `swap_columns()` fast-path breaking `data()`\r\n- Added spans\r\n - Added `span`\r\n - Added `is_span<>`\r\n - Added `table::subspan()` and `table::const_subspan()`\r\n - Added `span_type<>` and `const_span_type<>`\r\n- Added `soa_type<>`\r\n- Added `const_iterator_type<>`\r\n- Added `const_row_type<>`\r\n- Added `column_indices<>`\r\n- Added `soagen::for_each_column()`\r\n- Added `row::for_each_column()`\r\n- Added generic names `first`, `second`, ..., `sixteenth` for unnamed columns 0-15\r\n- Binary size improvements\r\n- Documentation improvements\r\n\r\n## v0.5.0\r\n\r\n- Added rows to `soagen::table`\r\n- Added iterators to `soagen::table`\r\n- Added `soagen::table::for_each_column()`\r\n\r\n## v0.4.0\r\n\r\n- Fixed `soagen::is_table<>`\r\n- Added support for emplace-constructing column values by unpacking all `std::tuple`-like types (not just the `emplacer`)\r\n- Added support for taking `std::integral_constants` in `for_each_column()`\r\n- Added `soagen::same_table_type<>`\r\n- Added conversions between `soagen::row<>` specializations\r\n- Optimized instantiation overhead for most type-traits\r\n\r\n## v0.3.0\r\n\r\n- Added `hpp.combined`\r\n- Added `std::integral_constant<size_t>` to the overload set used by `for_each_column()`\r\n- Added support for constructing rows from all `std::tuple`-like types\r\n- Optimized bulk-swap operations\r\n\r\n## v0.2.0\r\n\r\n- Added `structs.annotations`\r\n- Added `structs.attributes`\r\n- Added `auto` option for `structs.default_constructible`\r\n- Added `soagen::row_base`\r\n- Added `soagen::table_base`\r\n- Added `soagen::iterator_base`\r\n- Added `Base` template argument to `soagen::table` for CRTP\r\n- Added `swap_columns<>()`\r\n- Made `column_indices` member struct into `enum class columns`\r\n\r\n## v0.1.2\r\n\r\n- Minor refactors.\r\n\r\n## v0.1.1\r\n\r\n- Minor refactors.\r\n\r\n## v0.1.0\r\n\r\n- First public release \ud83c\udf89️\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Struct-of-Arrays for C++.",
"version": "0.7.0",
"project_urls": {
"Funding": "https://github.com/sponsors/marzer",
"Source": "https://github.com/marzer/soagen",
"Tracker": "https://github.com/marzer/soagen/issues"
},
"split_keywords": [
"c++",
"soa",
"struct-of-arrays",
"structure-of-arrays",
"struct of arrays",
"structure of arrays",
"parallel-arrays",
"parallel arrays",
"std::vector"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4ec473a508784eac8fcd586e3bd997ab1cad29864e506db5cebd7768e0761efd",
"md5": "3e3e55877ee51e9725a8275302b01b41",
"sha256": "984185b946fb775fdbe50319979a2d27f5ca0aa409020079b6dc0ad2016b8932"
},
"downloads": -1,
"filename": "soagen-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3e3e55877ee51e9725a8275302b01b41",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 156483,
"upload_time": "2023-08-27T17:43:05",
"upload_time_iso_8601": "2023-08-27T17:43:05.670154Z",
"url": "https://files.pythonhosted.org/packages/4e/c4/73a508784eac8fcd586e3bd997ab1cad29864e506db5cebd7768e0761efd/soagen-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "921ea07b4cf2dbae3cbfa3287a6ab04fc6dbb7489539a7bf4ecfa201db002a6b",
"md5": "f3296d1ffb47a0798a0f2e5080f487f2",
"sha256": "3279d4829f2bb679457f18515d9d64457a83704c953296492934324e256e74fe"
},
"downloads": -1,
"filename": "soagen-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "f3296d1ffb47a0798a0f2e5080f487f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 133112,
"upload_time": "2023-08-27T17:43:08",
"upload_time_iso_8601": "2023-08-27T17:43:08.595727Z",
"url": "https://files.pythonhosted.org/packages/92/1e/a07b4cf2dbae3cbfa3287a6ab04fc6dbb7489539a7bf4ecfa201db002a6b/soagen-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-27 17:43:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sponsors",
"github_project": "marzer",
"github_not_found": true,
"lcname": "soagen"
}