Skip to main content

Struct-of-Arrays for C++.

Project description

soagen

Struct-of-Arrays for C++.

Sponsor Gitter



✨️ This README is a stub. Please see the HTML documentation: marzer.github.io/soagen✨️



Changelog

v0.7.0

  • Fixed rvalue row corruption bug on MSVC (info)
  • 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 🎉️

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soagen-0.7.0.tar.gz (133.1 kB view details)

Uploaded Source

Built Distribution

soagen-0.7.0-py3-none-any.whl (156.5 kB view details)

Uploaded Python 3

File details

Details for the file soagen-0.7.0.tar.gz.

File metadata

  • Download URL: soagen-0.7.0.tar.gz
  • Upload date:
  • Size: 133.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for soagen-0.7.0.tar.gz
Algorithm Hash digest
SHA256 3279d4829f2bb679457f18515d9d64457a83704c953296492934324e256e74fe
MD5 f3296d1ffb47a0798a0f2e5080f487f2
BLAKE2b-256 921ea07b4cf2dbae3cbfa3287a6ab04fc6dbb7489539a7bf4ecfa201db002a6b

See more details on using hashes here.

File details

Details for the file soagen-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: soagen-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 156.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for soagen-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 984185b946fb775fdbe50319979a2d27f5ca0aa409020079b6dc0ad2016b8932
MD5 3e3e55877ee51e9725a8275302b01b41
BLAKE2b-256 4ec473a508784eac8fcd586e3bd997ab1cad29864e506db5cebd7768e0761efd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page