木头云 c9d0a94894 refactor(uninitialized): Improve construct() overload resolution
IMPROVEMENTS:
1. Add explicit zero-argument overload to avoid SFINAE ambiguity
2. Require at least one argument (A1) for parameterized overloads
3. Better separation between direct initialization and aggregate initialization

BENEFITS:
- Clearer intent: zero-argument construction is explicitly handled
- Avoids potential SFINAE ambiguity when empty parameter pack is used
- More maintainable: easier to understand which overload is selected
- Consistent with modern C++ best practices for variadic templates

TECHNICAL DETAILS:
- Zero-arg overload: Always uses T() for value initialization
- One-or-more-arg overload: Uses SFINAE to choose between:
  * T(args...) for types with matching constructor
  * T{args...} for aggregate types or types with initializer_list ctor

This is a code quality improvement and does not fix any compilation issues,
but provides better template overload resolution.
2025-12-03 08:13:44 +00:00
..
concur Add intrusive_stack 2025-12-03 08:11:57 +00:00
imp refactor(uninitialized): Improve construct() overload resolution 2025-12-03 08:13:44 +00:00
mem fix(container_allocator): Fix MSVC compilation by correcting allocator semantics 2025-12-03 08:13:44 +00:00
buffer.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00
condition.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00
def.h Start refactoring memory management, adding memory_resource 2025-12-03 08:11:57 +00:00
ipc.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00
mutex.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00
rw_lock.h Update rw_lock.h for #143 2025-04-20 13:58:42 +08:00
semaphore.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00
shm.h IPC_EXPORT => LIBIPC_EXPORT 2025-12-03 08:11:24 +00:00