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

Simplify the semantics of facade per spec #55

Merged
merged 6 commits into from
Jan 15, 2024

Conversation

mingxwa
Copy link
Collaborator

@mingxwa mingxwa commented Jan 13, 2024

To simplify the semantics of proxy, several changes has been made as per the latest spec:

  1. Defining repeated dispatches in a facade is no longer supported. An author of a facade should guarantee every dispatch is unique. Helper macros will serve this purpose with metaprogramming at compile time.
  2. concept basic_facade was strengthened with the following additions: a) F::dispatch_types shall be a specialization of std::tuple; b) The type of F::constraints shall be exactly const pro::proxiable_ptr_constraints, no implicit conversion is allowed; c) the maximum size and alignment defined by F::constraints shall follow the rule of C++; d) When F::reflection_type is not void, it shall be trivially copyable.
  3. concept facade was strengthen with the following addition: Each dispatch type defined by F::dispatch_types shall be trivially default constructible.

Some test cases are added to verify the constraints work as expected. No functional changes.

@mingxwa mingxwa requested a review from tian-lt January 13, 2024 12:05
@mingxwa mingxwa changed the title Simplify the semantics of facade Simplify the semantics of facade per spec Jan 14, 2024
@mingxwa mingxwa requested a review from a team January 15, 2024 08:55
@mingxwa mingxwa merged commit 4d22d2a into microsoft:main Jan 15, 2024
4 checks passed
@mingxwa mingxwa deleted the user/mingxwa/refactor-flattering branch January 15, 2024 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants