Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

typeclass: initial macro-based version. #43

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

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