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

Copy lvalues instead of referencing them #21

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mikezackles
Copy link

If it is of interest, I've made an attempt at resolving #20. I can't say I'm 100% confident in this code, but the basic test suite passes (with address/undefined behavior sanitizers). Thanks!

signal::connect has been reworked. It now does one of the following 3:

  • Stores a function pointer if the callable can be converted to one
  • Constructs the callable in the pointer's memory via perfect forwarding
  • Constructs the callable on the heap via perfect forwarding

One relevant test in main.cpp has been updated, and a memory leak in another
test was fixed.

Also marks conn_nontrivial destructor as an override

signal::connect has been reworked. It now does one of the following 3:
* Stores a function pointer if the callable can be converted to one
* Constructs the callable in the pointer's memory via perfect forwarding
* Constructs the callable on the heap via perfect forwarding

One relevant test in main.cpp has been updated, and a memory leak in another
test was fixed.

Also marks conn_nontrivial destructor as an override

Fixes TheWisp#20
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.

1 participant