std C++ 11 library impementation with extra features using only C++ 98 and POSIX threads
namespace _stdex_ADL
for ADL hack for bugged compilers (pollutes global scope but gets job done)
<mutex>
header:
stdex::timed_mutex
and stdex::recursive_timed_mutex
implementedmoar tests to the god of tests
<mutex>
header:
all build and test run scripts now povide more clear output
stupid MS defines for max
and min
breaking valid code
<thread>
header:
stdex::this_thread::sleep_for
bug with sleep interval less than expected (sync OS clocks used in <thread>
with OS clocks of stdex::chrono::system_clock
and stdex::chrono::steady_clock
)stdex::thread
functor argument params deduction<chrono>
implementation:
chrono
, this fix affects stdex::chrono::system_clock::now()
, stdex::chrono::steady_clock::now()
, stdex::condition_variable::wait_for()
, all waitable mutexes etc.<chrono>
header:
stdex::chrono::duration
operator%
for floating point stdex::chrono::duration::rep
stdex::chrono::treat_as_floating_point
for detecting floating point stdex::chrono::duration::rep
<system_error>
header:
stdex::make_error_code
using ADL hack for bugged compilersstdex::make_error_condition
using ADL hack for bugged compilersRelease contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<type_traits>
header:
stdex::is_function
trait detection for different calling conventionsstdex::is_union
detection now includes more compiler intrinsics thus making it more accurate for distinguishing between class and union
<thread>
implementation:
stdex::this_thread::sleep_for
is implemented as steady (monotonic) timer if available thus providing more precise sleep intervalimproved threads blocking times
<chrono>
implementation:
stdex::chrono::system_clock::is_steady
and stdex::chrono::steady_clock::is_steady
are now correctCLOCK_MONOTONIC_RAW
for newer Linux) affects stdex::chrono::system_clock::now()
and stdex::chrono::steady_clock::now()
stdex::thread
objectRelease contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
Release contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<ratio>
<strstream>
std::out_of_range
exception in stdex::stol
, stdex::stoul
for perfectly valid u/long maximum, minimum value stringsRelease contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<system_error>
to forbid invalid constructor calls<algorithm>
header:std::copy_n
existence<cstdint>
header:<string>
header:itol
, itoul
etc.Release contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
Release contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<typeindex>
header was missing so I found it in this releaseRelease contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<typeindex>
header:type_index
classtype_info
defined in stdex
namespaceRelease contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
to_string
and to_wstring
now accept static arrays
build script for Borland C++ Builder compiler
<cstdint>
header:
intmax_t
, uintmax_t
int8_t
, uint8_t
int16_t
, uint16_t
int32_t
, uint32_t
int64_t
, uint64_t
int_least8_t
, uint_least8_t
int_least16_t
, uint_least16_t
int_least32_t
, uint_least32_t
int_least64_t
, uint_least64_t
int_fast8_t
, uint_fast8_t
int_fast16_t
, uint_fast16_t
int_fast32_t
, uint_fast32_t
int_fast64_t
, uint_fast64_t
intptr_t
, uintptr_t
All types are only in
stdex
namespace. Type is incomplete or absent if it is not supported.
Where {N} is one in 8, 16, 32, 64 (if present). Defines are invalid or absent if type is not supported.
to_string
and to_wstring
for (w)c-strings and (w)stringstream implementationis_union
implementation with nasty compiler-specific intrinsic (still returns true
for classes if compiler has no intrinsic)ratio
(like yocto
, milli
, kilo
, exa
etc.) are now incomplete if are not supported (too large or too small)<stdint_ex.h>
for <cstdint.hpp>
/<cstdint>
Release contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).
<iterator>
header:
prev
next
begin
end
<algorithm>
header:
all_of
any_of
none_of
find_if_not
copy_if
copy_n
random_shuffle
is_partitioned
partition_copy
is_sorted_until
is_sorted
minmax
minmax_element
is_permutation
is_enum
and is_union
(unions are still not distinguishable from classes)Release contains static prebuilded library for Visual Studio's with pthreads-win32. To include in your vs project add 'pthread/include' as global headers path (Configuration Properties->VC++ Directories->Include Directories or to enviromental variable INCLUDE).