642 Commits

Author SHA1 Message Date
John Wellbelove
cda53ca500 Merge branch 'hotfix/add-deleter-constructor-to-unique-ptr' into development 2021-01-21 18:29:55 +00:00
John Wellbelove
c3a055ea75 Fixed typos in rvalue constructor 2021-01-21 11:42:27 +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
66304646a5 Added lock/unlock interface 2021-01-20 14:07:27 +00:00
John Wellbelove
2e7c79ed38 Added reference_counted_message specialisation for void counter 2021-01-19 19:33:36 +00:00
John Wellbelove
0257275c3c Added shared_message example 2021-01-15 11:07:41 +00:00
John Wellbelove
472035d69f Added shared_message receive override to messge_bus 2021-01-15 09:49:49 +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
6299163f45 Minor updates. 2021-01-10 20:41:13 +00:00
John Wellbelove
9f0f65b0b4 Renamed internal structure 2021-01-09 12:34:51 +00:00
John Wellbelove
e67d285862 Added static asserts 2021-01-08 19:53:48 +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
0b2bf0e47c LLVM changes 2021-01-06 19:01:34 +00:00
John Wellbelove
db8841ff0d Updates to pools and memory allocators 2021-01-06 17:56:24 +00:00
John Wellbelove
b40349ca9d get_memory_block_size() const 2021-01-04 17:31:52 +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
5a274578bb Updated deque from development 2021-01-04 12:40:43 +00:00
John Wellbelove
f02a99cc0e Updated generators 2021-01-04 12:21:40 +00:00
John Wellbelove
3e8c2ca448 Fixed LGT8F macro name clash 2021-01-04 11:21:57 +00:00
John Wellbelove
fc48021849 message router changes 2021-01-03 20:24:38 +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
3c2cb74524 Refactored reference_counted_message now contains owner reference 2021-01-03 12:18:34 +00:00
John Wellbelove
dc25df16db reference_counted_object and reference_counted_message specialisations 2021-01-02 19:42:27 +00:00
John Wellbelove
ecee02d41d reference_counted_object and reference_counted_message specialisations 2021-01-02 14:09:36 +00:00
John Wellbelove
cbf07b053c reference_counted_object and reference_counted_message specialisations 2021-01-02 13:39:59 +00:00
John Wellbelove
920dcdf4b6 Merged shared_message handlers into message_router 2021-01-02 12:35:13 +00:00
John Wellbelove
3cc95d6755 Interim commit
Refactor of reference counted types.
2021-01-01 20:26:01 +00:00
John Wellbelove
5abae28f16 Interim commit 2021-01-01 17:07:53 +00:00
John Wellbelove
eeb057a99d Moved code lines 2020-12-30 10:02:12 +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
faed3231bf Added typedefs 2020-12-24 19:08:03 +00:00
John Wellbelove
7ca4890a66 etl::multi_loop implementation 2020-12-24 11:59:52 +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
ee8abd915d Added is_random_access_iterator and deprecated is_random_iterator 2020-12-22 11:06:00 +00:00
John Wellbelove
4a91470347 Merge branch 'hotfix/fcs_make_getter_const' into development 2020-12-20 19:38:24 +00:00
John Wellbelove
febb4de79a Updated version numbers 2020-12-20 17:55:27 +00:00
John Wellbelove
3857830703 Merge branch 'hotfix/arduino-compatibility' into development 2020-12-20 16:44:30 +00:00
John Wellbelove
e890e3782e Arduino compatibility 2020-12-20 16:43:49 +00:00
Steffen Zimmermann
c09d3087d6
let default assignment operator return a reference to itself (#320)
The default assignment operator in C++ shall return a reference to *this.
2020-12-18 14:09:49 +00:00
Steffen Zimmermann
342acd5aa7
Fcs make getter const (#319)
* make FCS get and conversion-operator methods const

etl::frame_check_sequence has to access methods which can be made const:
  value_type value() const
  operator value_type() const

* make jenkins_policy::initial and final const

According to the documentation, initial, add and const have to be
tagged as const.

final has to be const now due to the change in the previous commit which
makes the fcs getter methods const.
2020-12-18 11:00:54 +00:00
John Wellbelove
7fd73fe96d Change std::move to etl::move in etl::forward_list 2020-12-16 08:47:39 +00:00
John Wellbelove
d7daf59a5b Updated version numbers 2020-12-10 11:35:15 +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