godot/core/templates
reduz a9c943bef9 Implement Range Iterators
This PR implements range iterators in the base containers (Vector, Map, List, Pair Set).
Given several of these data structures will be replaced by more efficient versions, having a common iterator API will make this simpler.
Iterating can be done as follows (examples):

```C++
//Vector<String>
for(const String& I: vector) {

}
//List<String>
for(const String& I: list) {

}
//Map<String,int>
for(const KeyValue<String,int>&I : map) {
	print_line("key: "+I.key+" value: "+itos(I.value));

}

//if intending to write the elements, reference can be used

//Map<String,int>
for(KeyValue<String,int>& I: map) {
	I.value = 25;
	//this will fail because key is always const
	//I.key = "hello"
}

```

The containers are (for now) not STL compatible, since this would mean changing how they work internally (STL uses a special head/tail allocation for end(), while Godot Map/Set/List do not).
The idea is to change the Godot versions to be more compatible with STL, but this will happen after conversion to new iterators have taken place.
2021-07-08 23:27:27 -03:00
..
bin_sorted_array.h Implement visibility range and dependencies. 2021-06-14 12:17:11 +02:00
command_queue_mt.cpp Refactor CommandQueueMT 2021-06-09 13:10:49 -03:00
command_queue_mt.h Refactor CommandQueueMT 2021-06-09 13:10:49 -03:00
cowdata.h Change CRASH_COND to ERR_FAIL in Cowdata::set 2021-02-24 21:36:08 +01:00
hash_map.h Style: Cleanup uses of double spaces between words 2021-06-07 11:03:08 +02:00
hashfuncs.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
list.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
local_vector.h LocalVector: Don't error if from >= count 2021-07-01 12:16:33 +02:00
lru.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
map.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
oa_hash_map.h Style: Cleanup uses of double spaces between words 2021-06-07 11:03:08 +02:00
ordered_hash_map.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
paged_allocator.h Replace QuickHull with Bullet's convex hull computer. 2021-05-22 22:35:42 +02:00
paged_array.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
pair.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
pass_func.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
pooled_list.h Dynamic BVH broadphase in 2D & 3D Godot Physics 2021-05-10 16:28:55 -07:00
rid_owner.cpp Modernize atomics 2021-02-18 17:12:46 +01:00
rid_owner.h Unify material parameter update 2021-07-06 18:57:38 -03:00
rid.h Rewrite render code to be more cache and thread friendly. 2021-01-05 08:50:18 -03:00
ring_buffer.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
safe_refcount.h Add type_traits include for std::is_trivially_destructible 2021-04-22 16:23:55 +02:00
SCsub Reorganized core/ directory, it was too fatty already 2020-11-07 20:17:12 -03:00
self_list.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
set.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
simple_type.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sort_array.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
thread_work_pool.cpp Modernize Thread 2021-01-29 12:02:13 +01:00
thread_work_pool.h Consider a thread done if current_work is null 2021-06-17 05:22:43 -07:00
vector.h Implement Range Iterators 2021-07-08 23:27:27 -03:00
vmap.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
vset.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00