965 Commits

Author SHA1 Message Date
John Wellbelove
ede5a91902 Added uninitialized_resize() 2021-02-22 09:33:12 +00:00
John Wellbelove
99c3bead5a Added data_end() and renamed trim() to trim_to_terminator() 2021-02-18 12:40:31 +00:00
John Wellbelove
03f7b49ca9 Merge branch 'hotfix/Chiraffollo-fix-find_next' into development 2021-02-17 19:54:29 +00:00
Chiraffollo
f5534fefdf fix bug in ibitset find_next method (#338)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2021-02-17 19:54:29 +00:00
John Wellbelove
c6bb73d7d0 Updated version 2021-02-17 19:54:28 +00:00
John Wellbelove
580d9848dc Fixed indexing error in find_next for etl::bitset.
Added some enum tests for type_traits
2021-02-17 19:54:27 +00:00
John Wellbelove
7eaf3e13a7 Interface for C string handling. 2021-02-17 09:02:04 +00:00
John Wellbelove
0ee3574a14 Added update_size() to string API to fix string lengths after insertion of characters by C code. 2021-02-15 13:36:31 +00:00
John Wellbelove
f145b53e80 Added non-const get_message() member funtions in shared message framework. 2021-02-14 11:42:36 +00:00
John Wellbelove
e799f37fac Modified reference_counted_message_pool::allocate() return type 2021-02-12 20:05:06 +00:00
John Wellbelove
82b25ae9c7 Allow default constructed messages for shared messages 2021-02-12 13:59:39 +00:00
John Wellbelove
97a6e6a035 Squashed commit of the following:
commit 04ba91bcccc8e12867962bc3746665f430672a23
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sat Feb 6 10:43:34 2021 +0000

    Updated shared message unit test

commit fababc5cf748073464b4294a50c201cb0aa4fa13
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:41:52 2021 +0000

    Updated FSM generator

commit ff287bcf0a833ca70933354b42b8b036b422ff81
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:35:56 2021 +0000

    Updated message router generator

commit 52724e1e62b55dad81e2f80dd656026d828b3214
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Thu Feb 4 13:06:50 2021 +0000

    Updated unit tests

commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 20:09:35 2021 +0000

    Interim commit

commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:13:29 2021 +0000

    Squashed commit of the following:

    commit 007b56d03513887636b84fc246e57d6c4f8b777e
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:09:51 2021 +0000

        Squashed commit of the following:

        commit 6107c4538be149137209d85e5f41031291bc7150
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 12:15:31 2021 +0000

            Added move constructor and move assignment to etl::shared_message

        commit c9a5716012db9b614ea67660ebf64dcb790ce571
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:36:29 2021 +0000

            Squashed commit of the following:

            commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:34:49 2021 +0000

                Squashed commit of the following:

                commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:32:35 2021 +0000

                    Fixed rollover error for etl::queue_spsc_atomic

                    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                    Updated QueuedMessageRouter example

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example
2021-02-07 11:02:49 +00:00
John Wellbelove
007b56d035 Squashed commit of the following:
commit 6107c4538be149137209d85e5f41031291bc7150
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 12:15:31 2021 +0000

    Added move constructor and move assignment to etl::shared_message

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example
2021-02-02 18:11:11 +00:00
John Wellbelove
e5f4eb6fb3 Squashed commit of the following:
commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:32:35 2021 +0000

    Fixed rollover error for etl::queue_spsc_atomic

    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
    Updated QueuedMessageRouter example
2021-01-31 12:34:49 +00:00
John Wellbelove
7bfdb53e0d Added enable_if for container iterator costructors, to exclude integrals from consideration 2021-01-29 11:33:50 +00:00
John Wellbelove
331a928f3b Updated version and release notes. 2021-01-27 21:06:58 +00:00
John Wellbelove
20ada628a6 Refactored queues 2021-01-26 19:13:15 +00:00
John Wellbelove
d8ad89c21b Added ilockable interface & queue_lockable 2021-01-23 14:13:55 +00:00
John Wellbelove
694ff52fdb Merge branch 'hotfix/add-deleter-constructor-to-unique-ptr' into development 2021-01-21 10:39:46 +00:00
John Wellbelove
503b990514 Added constructors with deleters for unique_ptr. 2021-01-21 10:38:18 +00:00
John Wellbelove
2e7c79ed38 Added reference_counted_message specialisation for void counter 2021-01-19 19:33:36 +00:00
John Wellbelove
7e340f5e71 Removed pool_message and non_pool_message 2021-01-14 13:43:37 +00:00
John Wellbelove
212181a4be Merge branch 'master' into development
# Conflicts:
#	.gitignore
2021-01-14 09:31:24 +00:00
John Wellbelove
2c73fdf9ca Added virtual function 'void on_task_added()' that is called when a task is added to a shceduler. 2021-01-13 09:50:02 +00:00
John Wellbelove
9f0f65b0b4 Renamed internal structure 2021-01-09 12:34:51 +00:00
John Wellbelove
bd263e6510 Added final unit tests 2021-01-07 22:40:51 +00:00
John Wellbelove
2d612b0409 Ongoing addition of unit tests 2021-01-06 21:18:18 +00:00
John Wellbelove
db8841ff0d Updates to pools and memory allocators 2021-01-06 17:56:24 +00:00
John Wellbelove
f980ce2cd3 Merge branch 'feature/shared-objects-in-pools' into development
# Conflicts:
#	.gitignore
#	include/etl/deque.h
#	include/etl/file_error_numbers.txt
#	include/etl/generators/fsm_generator.h
#	include/etl/list.h
#	include/etl/memory.h
#	include/etl/pool.h
#	test/vs2019/etl.vcxproj.filters
2021-01-04 17:15:25 +00:00
John Wellbelove
6e71e05877 Added fixed_sized_memory_block_pool and restored imemory_block_pool interface 2021-01-03 20:15:16 +00:00
John Wellbelove
35debe90eb Merge branch 'feature/add-multi-loop' into development
# Conflicts:
#	include/etl/functional.h
#	include/etl/multi_loop.h
#	test/test_functional.cpp
#	test/test_multi_range.cpp
2020-12-28 13:37:19 +00:00
John Wellbelove
92c68b1367 Refactor multi_loop to multi_range 2020-12-28 13:23:23 +00:00
John Wellbelove
aa148ac424 Latest implementation 2020-12-27 11:59:14 +00:00
John Wellbelove
dd9aa7761e Added etl::multi_loop 2020-12-24 12:32:46 +00:00
John Wellbelove
7ca4890a66 etl::multi_loop implementation 2020-12-24 11:59:52 +00:00
John Wellbelove
0184725feb Added etl::multi_loop 2020-12-22 12:44:17 +00:00
John Wellbelove
1aac5fb046 Added etl::for_each 2020-12-22 12:43:54 +00:00
John Wellbelove
791eb02be0 Interim commit 2020-12-22 11:10:02 +00:00
John Wellbelove
45d7186d8a Removed unused functions 2020-12-22 11:06:00 +00:00
John Wellbelove
e890e3782e Arduino compatibility 2020-12-20 16:43:49 +00:00
Steffen Zimmermann
927bb3cf5a
Make span std compliant (#317)
* add missing overloads for span::first + span::last

The C++20 standard defines additional overloads for first and last:

  template< std::size_t Count >
  constexpr std::span<element_type, Count> first() const;
  constexpr std::span<element_type, std::dynamic_extent> first( size_type Count ) const;

  template< std::size_t Count >
  constexpr std::span<element_type, Count> last() const;
  constexpr std::span<element_type, std::dynamic_extent> last( size_type Count ) const;

etl implements only the first (= template) variants so far. To be able to
compile valid C++20 code the missing overload should be added.

* remove explicit specifier for span conversion operator

The C++20 standard allows to assign a span of non-const elements to a span of
const elements. Example:

    std::span<const int> cintspan;
    std::span<int> intspan;
    cintspan = intspan;

This is enabled in the STL by using an explicit specifier with a constant
expression for one of the conversion constructors:

    template< class R >
    explicit(extent != std::dynamic_extent)
    constexpr span( R&& r );

The explicit specifier together with a constant expression is a C++20 feature
and therefore can't be used within etl. To be able to compile valid C++20
code which uses the conversion on assignment, the explicit specifier has to
be removed.

* remove explicit specifier for span conversion operator

The C++20 standard allows to assign an array of elements directly (without
explicitly using a conversion constructor). Example:

    const int data = { 1, 2, 3 };
    std::span<const int> cintspan;
    cintspan = data;

To be able to compile valid C++20 code which uses the conversion on assignment,
the explicit specifier of the array-conversion constructor has to be removed.
2020-12-09 14:33:34 +00:00
John Wellbelove
4d1f56bf9e Merge branch 'hotfix/issue-303-etl-not-compatible-with-arduino-ide' into development
# Conflicts:
#	support/Release notes.txt
#	test/vs2019/etl.vcxproj.filters
2020-12-08 12:14:36 +00:00
John Wellbelove
e122383d7d Updated for automatic detection of <new> or <new.h> 2020-12-06 14:13:37 +00:00
John Wellbelove
fbfd8ac6a4 Added clang mutex header redirect to GCC implementation 2020-12-05 14:32:00 +00:00
John Wellbelove
fdcc2c00d3 Minor changes 2020-12-05 11:55:40 +00:00
John Wellbelove
0900d81dc7 Merge branch 'hotfix/issue-315-bit-stream-float-consumes-double-bytes' into development 2020-12-04 11:33:54 +00:00
John Wellbelove
b5c65aea25 Added parameterised constructor for etl::format_spec 2020-12-04 11:33:04 +00:00
John Wellbelove
536fd412a3 Removed double subtraction of float size from 'bits_remaining' for floating point reads 2020-12-03 19:16:09 +00:00
John Wellbelove
8b009a4fa9 issue-314-constexpr 2020-12-03 12:06:32 +00:00
John Wellbelove
3dd45ca504 issue-314-constexpr 2020-12-03 11:55:12 +00:00