Open romange opened 4 years ago
This could be really useful indeed. Probably it will be implemented in the future.
This could also be useful as a configuration option to disallow function objects that are too large for SFO.
using MyFunction = fu2::function_base<...>;
auto cb1 = [foo, bar] {};
auto cb2 = [foo, bar, baz] {};
MyFunction f1{cb1}; // allowed
//MyFunction f2{cb2}; // too big for SFO, compile error
Yes, that's right. Something like fu2::inplace_function
(which itself could be a specialization of fu2::function_base
) could be quite useful.
I came here looking for an in-place move-only function, and I very much vote for both proposals. In some places I want my functions to be in-place only, with a possibility to increase the storage size as needed.
@Naios Suggestion
For example,
This could be useful to maintain code over time and not to break performance-related assumptions..