Implementing a pointer cast registry mechanism #298
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This mechanism allows users to autowire types that are completely undefined. Generally speaking, any function whose behavior might depend on whether the Autowired instance has been autowired or not will require that the type be completely defined. This includes obvious functions, such as
Autowired::operator->
, but also less obvious functions such asAutowired::NotifyWhenAutowired
andAutowired::operator bool
.As a trapdoor, the function
Autowired::get_unsafe
has been added. This function does not require that the autowired type be registered, but inconsistent behavior will result if it's not, especially when dealing with class interfaces.