Skip to content

typeclass: initial macro-based version.#43

Open
griwes wants to merge 3 commits intoreaver-project:masterfrom
griwes:typeclasses
Open

typeclass: initial macro-based version.#43
griwes wants to merge 3 commits intoreaver-project:masterfrom
griwes:typeclasses

Conversation

@griwes
Copy link
Member

@griwes griwes commented Feb 20, 2017

Rough TODO for the future:

  • SFINAEable typeclass instances (even for non-templated typeclasses)
  • honor cvref qualifiers on member declarations
  • allow overloads of member functions (possibly with tpl::vector)
  • add checking for instance exhaustiveness, i.e. whether all functions are implemented (not 100% sure how to do this)
  • support typeclass hierarchies
  • allocation policies for erased
  • possibly "vtable policies" like Louis Dionne's te's?
  • reflection-powered version of the library (this one requires a working reflection implementation (duh))
  • generation of language concepts for the typeclasses

Rough TODO for the future:
* SFINAEable typeclass instances (even for non-templated typeclasses)
* honor cvref qualifiers on member declarations
* allow overloads of member functions (possibly with tpl::vector)
* add checking for instance exhaustiveness, i.e. whether all functions
   are implemented (not 100% sure how to do this)
* support typeclass hierarchies
* allocation policies for `erased`
* possibly "vtable policies" like Louis Dionne's `te`'s?
* reflection-powered version of the library (this one requires a
   working reflection implementation (duh))
* generation of language concepts for the typeclasses
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

1 participant