Function2 Versions Save

Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more

4.2.4

6 months ago

4.2.3

10 months ago

4.2.2

1 year ago

Includes recent improvements

4.2.0

2 years ago

Includes minor maintainance and stability patches from the last year

4.1.0

4 years ago
  • Fix reference types in the return type #35
  • Add a workaround for a MSVC 16.3.1 compiler regression #29
  • Propagate the empty state correctly into the erasure from function like types #27
  • Fix an issue that owning unique functions were accidentally copyable #23
  • Fix a typo in the function property #20
  • And more minor improvements and code cleanups

4.0.0

5 years ago
  • Improved CMake packaging it is now possible to:
    • Install function2 properly
    • Include a function2 subdirectory as subproject
  • The minimum CMake version was raised to 3.11 because of issues with imported interface targets on lower versions.
  • Interface breaking change: The capacity is now an integral_type like type rather than specifying the size directly, this makes it possible to also specify the alignment and it works better with capacities that shall hold a forward declared object which is defined later.
struct my_capacity {
  static constexpr std::size_t capacity = sizeof(my_type);
  static constexpr std::size_t alignment = alignof(my_type);
};

3.1.0

5 years ago
  • [#16] Readme Wording
  • [#15] Support and propagate noexcept-qualified function types
  • [#14] Compilation error of fu2::unique_function having a capture
  • [#13] Constructing function_view from fu2::function

3.0.0

6 years ago
  • [a2b8cb0b2] Introduce the non owning function_view
  • [4a3ff153af] Improvements to the size of the whole wrapper object
  • [387f4938c] The object is now guaranteed to be allocated inplace if it fits into the internal buffer
  • Many minor improvements

2.3.0

6 years ago
  • #7
  • #10
  • Some minor improvements and warning fixes

2.2.0

6 years ago

This release fixes a major issue which lead to a double destruction when using the standard std::allocator