Jackalope / jlib (public) (License: GPLv3 or later) (since 2019-11-18) (hash sha1)
jlib C++ template library
Used to replace std functionality without exception handling.
- data structures
- filesystem routines
- crossplatform threads interface (currently only pthreads implementation)
- thread pool
- crossplatform dynamic memory functions interface (allocate, reallocate, deallocate) with alignment support
- high percision timer routines based on timespec
List of commits:
Subject Hash Author Date (UTC)
darray_mods GCC compilation fix. c8608b53bde33aa15fee76a03139521696c2d0ce Jackalope 2020-06-01 12:42:38
Make jassert constexpr again (yeah, again). 973c1f47663af054fc7680b87e76b951d40e603b Jackalope 2020-06-01 12:20:33
Version 0.4.1 64f005bfab2e8febf82bd381fc135bdfff61ca71 Jackalope 2020-05-31 23:47:41
CMake: build both shared and static with JLIB_SHARED and JLIB_STATIC options. When is subdirectory, select only one instead. Doxygen target renamed from documentation to jlib-doxygen. 20910577a262b43a373f5b8f4a9b444fcdaf56bb Jackalope 2020-05-31 21:37:04
Wide line fix. e6f02dfd80996cf18285fa2cc2e3cbffe3854d11 Jackalope 2020-05-31 18:43:06
fs::stream: discard input function, constructor from FILE. fbe72ec086b44821ea93a61dba7f869b043769e9 Jackalope 2020-05-31 18:42:12
Version 0.4.0 9e5059b4af323e37f4ad0f4f7eb20f562d07c857 Jackalope 2020-05-31 11:17:38
FS limits function fix. 813a0a8aaae122b7b4a4d158cf029aff1733308c Jackalope 2020-05-31 11:05:07
New option JLIB_ALLOCATE_DEBUG fa66e03cd2ea7102bab8a6de3415898c114a27e4 Jackalope 2020-05-31 10:44:49
Changed version config to match versioning compatibility. 393953edfa42b24e43ba027c5d52d7c2df6cf861 Jackalope 2020-05-31 10:43:09
Thread pool wrong doxygen tag fix. 8392eb800adc01d587d9f6ce962ad403f1e5c80c Jackalope 2020-05-29 16:51:33
jassert macro compatibility in if statement without braces. 5c749b8c1cb2cb51c8ddf6ccedef8d72554d6c68 Jackalope 2020-05-29 15:54:53
Version 0.3.0 616c945f21a8da901facc7363c3b204216776a1d Jackalope 2020-05-26 14:37:18
Removing deprecated threads and old thread pool. b2ce1a8eb5b4a1b9c5d6a19fe75e7a52738e6866 Jackalope 2020-05-26 14:31:57
Resolved issues and warnings with GCC. c9ee73408a660c723dd51b74311d572ec4ef2320 Jackalope 2020-05-26 14:19:43
Thread result can be only pointer now. 645f6ce75c773fd2fad543bfd542202d02925288 Jackalope 2020-05-26 14:19:11
Option JLIB_STATIC to select static or shared library. 08b3a60286a7487ce445f66852f0afdd0f99be69 Jackalope 2020-05-26 14:17:11
Add warning compilation flags. 071b3c83090367f7c2beea5394b926c14620dc66 Jackalope 2020-05-26 13:25:37
New thread pool implementation. 849910e5b45ab543231e24650368289a180452d6 Jackalope 2020-05-26 08:59:03
rarray::iterator_index function 7ee95c6b048973f209fc4e365af36a3dcdb06c4b Jackalope 2020-05-26 08:58:20
Commit c8608b53bde33aa15fee76a03139521696c2d0ce - darray_mods GCC compilation fix.
Author: Jackalope
Author date (UTC): 2020-06-01 12:42
Committer name: Jackalope
Committer date (UTC): 2020-06-01 12:42
Parent(s): 973c1f47663af054fc7680b87e76b951d40e603b
Signing key:
Tree: 162400dfdaeade603c08ddac49f14e2f02b67455
File Lines added Lines deleted
include/jlib/darray_mods.h 10 10
File include/jlib/darray_mods.h changed (mode: 100644) (index e7e8935..9638805)
... ... namespace jl {
38 38 template<typename T, typename G> template<typename T, typename G>
39 39 struct jl::darray_unordered : darray<T, G> struct jl::darray_unordered : darray<T, G>
40 40 { {
41 using darray = darray<T, G>;
42 using typename darray::grow_policy;
43 using typename darray::item;
44 using typename darray::begin;
45 using typename darray::end;
41 using darray_self = darray<T, G>;
42 using typename darray_self::grow_policy;
43 using typename darray_self::item;
44 using typename darray_self::begin;
45 using typename darray_self::end;
46 46 /** /**
47 47 * @brief Call function with item from iterator position, and remove it. * @brief Call function with item from iterator position, and remove it.
48 48 * Same as darray::remove, but instead of moving items, * Same as darray::remove, but instead of moving items,
 
... ... struct jl::darray_unordered : darray<T, G>
69 69 } }
70 70 [[nodiscard]] bool insert(const T &value, size_t index) = delete; [[nodiscard]] bool insert(const T &value, size_t index) = delete;
71 71 [[nodiscard]] bool insert(const T &value, T* iterator) = delete; [[nodiscard]] bool insert(const T &value, T* iterator) = delete;
72 using darray::insert;
72 using darray_self::insert;
73 73 }; };
74 74 /** /**
75 75 * @brief Dynamic-sized array which always has sorted items. * @brief Dynamic-sized array which always has sorted items.
 
... ... struct jl::darray_unordered : darray<T, G>
80 80 template<typename T, typename G> template<typename T, typename G>
81 81 struct jl::darray_sorted : darray<T, G> struct jl::darray_sorted : darray<T, G>
82 82 { {
83 using darray = darray<T, G>;
84 using typename darray::item;
83 using darray_self = darray<T, G>;
84 using typename darray_self::item;
85 85
86 86 /** /**
87 87 * @brief Takes allocation from darray and sorts items * @brief Takes allocation from darray and sorts items
 
... ... struct jl::darray_sorted : darray<T, G>
91 91 * @param p_da Pointer to darray, where allocation * @param p_da Pointer to darray, where allocation
92 92 * will be taken from. This darray will be empty after. * will be taken from. This darray will be empty after.
93 93 */ */
94 void sort_darray(darray *p_da) {
94 void sort_darray(darray_self *p_da) {
95 95 *this = *p_da; *this = *p_da;
96 96 *p_da = {}; *p_da = {};
97 97 std::qsort(this->p_begin_allocated, this->count(), sizeof(T), std::qsort(this->p_begin_allocated, this->count(), sizeof(T),
 
... ... struct jl::darray_sorted : darray<T, G>
175 175 return true; return true;
176 176 } }
177 177 private: private:
178 using darray::insert_no_resize_check;
178 using darray_self::insert_no_resize_check;
179 179 }; };
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/Jackalope/jlib

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jlib

Clone this repository using git:
git clone git://git.rocketgit.com/user/Jackalope/jlib

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main