625 Commits

Author SHA1 Message Date
木头云
d65eafe86a fix(uninitialized): Fix MSVC compilation error with std::map node construction
The issue occurs when container_allocator calls ipc::construct<T>() with no arguments.
MSVC and GCC have different behaviors regarding std::is_constructible for std::map's
internal node type.

Solution:
- Add explicit overload for zero-argument construct() using value initialization T()
- Separate overloads for one or more arguments to avoid SFINAE ambiguity
- This ensures MSVC uses direct initialization T() instead of aggregate initialization T{}

Fixes compilation error on Visual Studio 2017:
error C2512: no appropriate default constructor available
note: Invalid aggregate initialization
2025-12-01 07:31:15 +00:00
mutouyun
bb3c6eb534 Replace custom hash struct with std::hash in unordered_map definition 2025-05-24 15:14:30 +08:00
mutouyun
70121091d6 Fix the issue caused by inconsistent lifecycle of the global IPC object. 2025-05-06 17:59:03 +08:00
mutouyun
32c2be29a9 Refactoring the generic memory allocator 2025-03-09 18:02:51 +08:00
mutouyun
2d38a6a6e7 Reimplement the allocator required for the container type with $new 2025-03-09 18:02:51 +08:00
mutouyun
831225f763 Use $new instead of alloc 2025-03-09 18:02:51 +08:00
mutouyun
db109165f3 Simplify the implementation of memory allocation management 2025-03-09 18:02:51 +08:00
mutouyun
180920968f The memory allocator supports runtime dynamic size memory allocation 2025-03-09 18:02:51 +08:00
mutouyun
ea0a3a4bf6 libipc/memory/resource.h => libipc/mem/resource.h 2025-03-09 18:02:51 +08:00
mutouyun
89e9f87f36 Add $new 2025-03-09 18:02:51 +08:00
mutouyun
edc1e80585 Add block_pool 2025-03-09 18:02:51 +08:00
mutouyun
3571fa58c8 Adjust the allocator name 2025-03-09 18:02:51 +08:00
mutouyun
99272a452a Simplify verify_args function to fix error C3249 2025-03-09 18:02:51 +08:00
mutouyun
86d9d868c8 Fix fmt function to handle null pointers and return empty string 2025-03-09 18:02:51 +08:00
木头云
00162b96b9 Update c-cpp.yml 2025-03-09 18:02:51 +08:00
mutouyun
87edc6fab1 Fix fmt function to handle empty strings and update make_prefix template parameters 2025-03-09 18:02:51 +08:00
mutouyun
70a1f68f01 Optimize memory_resource & add monotonic_buffer_resource 2025-03-09 18:02:51 +08:00
mutouyun
b8d01ddf68 Add intrusive_stack 2025-03-09 18:02:51 +08:00
mutouyun
40eaab7310 Add allocator and rewrite allocator_wrapper 2025-03-09 18:02:51 +08:00
mutouyun
8c34d5d4bc Optimized partial implementation using fmt 2025-03-09 18:02:51 +08:00
mutouyun
48d4d6111d Start refactoring memory management, adding memory_resource 2025-03-09 18:02:51 +08:00
mutouyun
033f22ae8f Update platform-specific feature macros to new interfaces in imp 2025-03-09 18:02:51 +08:00
mutouyun
85bf8263fb Add system 2025-03-09 18:02:51 +08:00
mutouyun
6db5845a45 Add result 2025-03-09 18:02:51 +08:00
mutouyun
6c068f7ba4 IPC_EXPORT => LIBIPC_EXPORT 2025-03-09 18:02:51 +08:00
mutouyun
d2ba9dce52 Add log 2025-03-09 18:02:51 +08:00
mutouyun
72ec8ee42f Add error 2025-03-09 18:02:51 +08:00
mutouyun
e30ab84ccc Added fmt support for byte 2025-03-09 18:02:51 +08:00
mutouyun
e333bc754e Add fmt 2025-03-09 18:02:50 +08:00
mutouyun
a2d82ec6f0 Add codecvt 2025-03-09 18:02:50 +08:00
mutouyun
54f05e9536 libimp => libipc 2025-03-09 18:02:50 +08:00
mutouyun
e5546179e2 Add nameof & scope_exit 2025-03-09 18:02:50 +08:00
mutouyun
e5a56f02f1 Move the export.h file to the imp directory 2025-03-09 18:02:50 +08:00
mutouyun
ed8f9d06a6 Add expected 2025-03-09 18:02:50 +08:00
mutouyun
67776aea65 Add imp for subsequent refactoring 2025-03-09 18:02:50 +08:00
木头云
f3bf137668
Merge pull request #139 from aengusjiang/master
acquire 仅open不存在的shm不应该打印错误日志
2025-03-08 15:52:35 +08:00
Aengus.Jiang
7bb5f2e611 Merge branch 'master' of https://github.com/aengusjiang/cpp-ipc 2025-03-07 12:34:38 +08:00
Aengus.Jiang
06d4aec320 posix shm open 失败时如果文件不存在打印log #2 修改逻辑错误 2025-03-07 12:33:42 +08:00
Aengus.Jiang
5c36b1264f posix shm open 失败时如果文件不存在打印log 2025-03-07 11:57:31 +08:00
Aengus.Jiang
d69093462a open的时候不存在共享内存,则返回false,没有必要报错 2025-03-07 11:36:57 +08:00
木头云
df09c22738
Update README.md 2025-02-09 17:00:48 +08:00
mutouyun
2673453e66 Try to fix permission issues under linux 2024-12-01 21:06:06 +08:00
mutouyun
84bb801b6e Try to fix a communication problem caused by different permissions under linux 2024-12-01 19:53:40 +08:00
mutouyun
5e5b347636 Complete the implementation of the clean interface and add unit tests 2024-12-01 19:06:50 +08:00
mutouyun
28fdf17279 Added cleanup interfaces for ipc chan 2024-12-01 17:49:34 +08:00
mutouyun
17dcde92bf Added clear_storage for quieue 2024-12-01 17:49:34 +08:00
mutouyun
ab90437e44 Added a cleanup interface for waiter. 2024-12-01 17:49:34 +08:00
mutouyun
acea9d74da Fix ut 2024-11-17 17:51:18 +08:00
mutouyun
e1f377d7f6 Added a cleanup interface for the synchronization facilities 2024-11-17 17:39:03 +08:00
mutouyun
29678f1d41 Added a cleanup interface for queue 2024-11-17 17:36:09 +08:00