Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2022-04-18 00:00:00Z and 2022-04-19 00:00:00Z
Avatar
As I already pointed out a bit in https://github.com/ddnet/ddnet/pull/4995#issuecomment-1100973405, blockworlds is based on vanilla and generally rejected any of DDNets code or compatibility. I think it would be the best to fully drop all "support" and specifications that we have in the client that is connected to blockworlds. All the "fixes" that are in the client are completely out of pattern in my opinion. For example the map editor stuff is not even worth it, since any bw map saved wit...
Avatar
Risky Feat suggested this idea to me, I also thought it was good so I implemented it. If you press one of the eyes in the settings it will change which eyes you get when you join a server. It saves a separate variable for dummy/player. It will also change your eyes anytime you press one of them, but only if you are playing as the same Tee whose eyes you are trying to change. If someone could figure out the best way to make it change the opposite Tees eyes as well that would be nice ...
Avatar
Should I be concerned about the ASan & UBSan check failing?
Avatar
my tooltip reimplementation seems to work
07:16
poggers
Avatar
Avatar
Tater
Should I be concerned about the ASan & UBSan check failing?
no, I have a fix for it, waiting for submit
Avatar
Refactored tooltips so they render last, otherwise stuff rendered after the call is overlapped. Also renamed "Alpha" to "Opacity" which is more clear to non-devs.

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Cha...
07:40
troll chillerdragon stuff
07:40
monkaS
Avatar
almost issue/pr #5000
Avatar
D:\a\ddnet\ddnet\src\game\client\components\tooltips.cpp(39,4): error C7555: use of designated initializers requires at least '/std:c++20' [D:\a\ddnet\ddnet\debug\DDNet.vcxproj]
07:41
wat
07:41
can u rly not do this
Avatar
fixes #4994

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresss...
Avatar
when c++20
07:44
looks like the only least insane c++
07:44
monkalaugh
Avatar
[quakenet] ChillerDragon BOT 2022-04-18 07:45:58Z
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/console.cpp at 843acf6a5a80ef445ff134c90bee374212673464 · ddnet/ddnet
Avatar
i wonder
07:47
console has always been magical
Avatar
Avatar
Ryozuki
can u rly not do this
Not until c++20. Designated initializers are a (superior) C feaure
07:48
Feature*
Avatar
Avatar
Learath2
Not until c++20. Designated initializers are a (superior) C feaure
ah thats why i remember using this before
07:48
it was probs c
07:49
also even with designated inits
07:49
u need to keep the order
07:49
which is a bit insane
Avatar
C99 gang
Avatar
in c u dont need to keep the order
07:49
iirc
Avatar
Avatar
Ryozuki
in c u dont need to keep the order
Yep
Avatar
Truly the language of gods
Avatar
why this limitation tho?
Avatar
I bet the bible was sent to earth written in C
hisnail 1
gigachad 1
Avatar
man the ubsan CI check always fails
07:51
and its not my fault
Avatar
Avatar
Ryozuki
why this limitation tho?
I honestly don't know, maybe you can dig up the initial proposal, but I'd guess to make the compilers job easier, just discard the designators and pretend it's list-initialization
Avatar
@Jupstar ✪ can u review my pr
07:54
it shouldnt be long
07:54
coffee
Avatar
deen already merged it
07:54
xd
07:54
xd
Avatar
but
07:54
u forgot a new line
07:54
in menus.cpp
07:54
will probs fail
07:54
it passes the fix style
07:54
cuz i ran it
Avatar
ok then heinrich will kill u once he pops up again
07:55
wait i add it
07:55
then u bors retry or smth
Avatar
yes
07:55
in tooltips.h too
Avatar
pushed
Avatar
0bef280 Add sanitizers run to bors too - def- 7973713 Ignore pnglite shift ubsan - def- af610c2 Add ubsan.supp to README, add runtime suppression for json.c - def- ad56578 Merge #4992 - bors[bot]
Avatar
now we only need physics tests
08:11
with the null client
Avatar
ez af
08:12
soon the CI takes 2h
08:12
bcs the CI has to play teeworlds
08:13
to test all features
🤣 1
Avatar

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--u...
Avatar
We could use teehistorian replays as end-to-end tests for the server
Avatar
041c565 Unselect text after ctrl-u - def- faab2de Refactor tooltips to render last, add some tooltips - edg-l 74286d1 format code - edg-l 2a71e38 Respect GPU type better - Jupeyy fbbcbb6 remove designated initializers because we live in 2017 - edg-l 50f9aa8 Prepare graphics for dynamic viewport changes - Jupeyy 0312346 Use a forced dynamic viewport for unsupported resolutions instead - Jupeyy d770913 Don't force clear anymore for forced viewports - Jupeyy eba7a14 add missing end new lines - edg-l fdcb157 Merge #4946 #4993 #4998 #4999 - bors[bot]
Avatar
any profiler on linux that splits cleanly between threads?
Avatar
Use --per-thread with perf stat?
Avatar
I was just about to say that :D
Avatar
ok thanks
Avatar
87b7550 Inform about client restart when changing GPU - def- c39448c Merge #5000 - bors[bot]
Avatar
#5000 😮
Avatar
Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combination with possibly related configuration options Written a unit test if it works standalone, s...
Avatar
@Ryozuki is this tooltip that information pops up when aiming at some settings?
Avatar
b349932 Shorten names and clans in server status - def-
Avatar
Avatar
n000b
@Ryozuki is this tooltip that information pops up when aiming at some settings?
yes
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Much better
Avatar
Looks nicer to have consistent length in HUD, more clear that something is cut off with the ellipsis. !screenshot_2022-04-18_12-57-22 Thoughts on kill message?

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system...
Avatar
And the same for client ^
Avatar
chillerdragon BOT 2022-04-18 11:27:42Z
Ddnet Admin discussing replay bots in public!! @heinrich ban him!! (@deen)
We could use teehistorian replays as end-to-end tests for the server
Avatar
If it's replayed at server side it's not a "replay bot", but a teehistorian to demo converter
Avatar
chillerdragon BOT 2022-04-18 11:30:19Z
I always thought about a simple map with a lot of code coverage when just falling afk at spawn. Like a headless client connects in the CI to the server and falls through start tile into finish tile etc. Then a bash script uses fifo to stop the client. What do you think?
11:30
The question is where this map comes from. I am not sure if we want that map file in the ddnet repo.
Avatar
@Jupstar ✪ i cleaned my keyboard and it seems like it doesnt double press anymore
11:38
monkalaugh
11:38
it was rly dirty
11:38
monkalaugh
11:39
good advise: dont let ur cat on ur keyboard
Avatar
xd
12:00
most effective way to clean dust from hardware: use a compressor
f3 1
12:00
e.g. a ball pump ventile on a bicycle pump
12:00
u wont believe how much shit there is
12:00
vacuum cleaners suck bcs they only work well when there is a vacuum
Avatar
doesnt vacum generate static
Avatar
Avatar
chillerdragon
The question is where this map comes from. I am not sure if we want that map file in the ddnet repo.
Yes, should be in repo. Just call it something like coverage.map
12:11
I like the idea
Avatar
[quakenet] ChillerDragon BOT 2022-04-18 12:24:53Z
I think maybe it would be cleaner to create a full new repo only for integration tests. With some bash scripts and the map. And the CI clones that.
Avatar
makes it annoying when something fails to reproduce it locally
12:32
tests should be in the same repo as productive code imo
Avatar
[quakenet] ChillerDragon BOT 2022-04-18 12:41:49Z
ok
Avatar
congrats on the 5000th pr merged
12:52
#5000
Avatar
Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combination with possibly related configuration options Written a unit test if it works standalone, s...
Avatar
[quakenet] ChillerDragon BOT 2022-04-18 12:57:53Z
pog
Avatar
do i need to understand the blockworlds problems? xd
Avatar
Avatar
Ryozuki
congrats on the 5000th pr merged
5000 is the combined number of prs and issues
Avatar
https://youtu.be/BFld4EBO2RE I was going to post this in #off-topic but this is probably where it'd be appreciated more
Avatar
@Learath2 ban
13:21
holy shit
13:21
the shader
13:21
looks rly good
13:22
144fps too
Avatar
The guy apparently used to work at pixar
Avatar
He also explains his process extremely well, so well that I'm tempted to give it a go myself
Avatar
when i see stuff like that i want to use raytracing xd
13:24
godot will probs only add it in 4.1 <.<
13:24
make a ddnet shader
Avatar
yeah i'd love to break map compability with vanilla
13:25
would give us so much more oppotunities 😄
Avatar
idk why we dont do that yet
13:25
vanilla is effectively dead
Avatar
and old ddnet clients too tbf
13:25
but yeah
Avatar
im anti anti-updaters
Avatar
xd
13:25
yeah its annoying
13:25
and i think mappers also dislike it
13:25
pipou also wants more control over level of detail
13:26
understandable
Avatar
the map format could maybe get improved a lot
Avatar
I smell a coup brewing
Avatar
im sure we can do better than a 15y old map format
Avatar
yes
13:26
DDNET GOVERNMENT SUCKS xd
13:26
konsti incoming
Avatar
Avatar
Ryozuki
the map format could maybe get improved a lot
Hm, what are your concerns with it?
Avatar
its not mod firnedly xd
Avatar
@Learath2 have u ever tried to write a map parser
Avatar
and it should embedd with PNG
13:27
not zlib
Avatar
Avatar
Ryozuki
@Learath2 have u ever tried to write a map parser
Not really, hence I asked what your concerns are
Avatar
Avatar
Jupstar ✪
its not mod firnedly xd
If we get a new map format, I want uuids for layer types
Avatar
oh yeah
13:27
the mixing of uuid and non uuid
13:27
was a weird thing xd
Avatar
yeah lets also break network while at it xD
13:28
same problem
Avatar
protobuf for network?
Avatar
is protobuf used in games?
13:28
we should check how actual games do it
Avatar
but QUIC & encryption for chat
13:28
would already be a good first step
Avatar
make a more filter friendly protocol
13:30
one optimization that i can think of, maybe its a bit useless, but for example, i think all layers need to have the same size usually as the game layer
13:30
but for example
13:30
switch layer will have lot of empty wasted space
13:30
we could design it to not waste so much
13:30
a 10kx10k map is actually 10k x 10k x NLAYERS (edited)
13:30
xd
Avatar
only all physics layers need to be the same size, not the tiles layers
Avatar
Avatar
Ryozuki
one optimization that i can think of, maybe its a bit useless, but for example, i think all layers need to have the same size usually as the game layer
I think eeeee used RLE when doing the first emscripten version of ddnet
Avatar
Even that should save massive amounts of space on those very sparse layers
Avatar
I think RLE is already used but only to skip empty tiles (and only to skip up to 255 tiles)
Avatar
in the 0.7 format each tile stores the count, how many times it should get repeated
13:40
(ddnet pls don't add thats how twmap differentiates ddnet and 0.7 maps rn and I'll need to figure out a better way 😅)
Avatar

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--u...
Avatar
i spent 30 mins figuring out why my change didnt work
Avatar
most active ryo since a long time xd
Avatar
and it didnt work because i forgot to set the server in test mode
13:41
stupid waste of time
13:41
xd
Avatar
Avatar
Jupstar ✪
most active ryo since a long time xd
true xd
13:41
im on vacations
13:41
which end this wednesday tho
13:41
fuckyousnail
Avatar
rtip
Avatar
While testing a submitted map that used many hook teles, I noticed that hook tele is not predicted. This caused the map to be much much easier on a LAN server than on testing servers by a large amo...
13:49
@Jupstar ✪ do u think we could somehow make teles predictable by e.g when server starts, generate a seed that is then known by the client
13:49
xd
Avatar
could also just be tick based
13:49
doubt we need a seed
Avatar
or remove randomness
13:49
random is never really cool 😄
Avatar
if we remove randomness it may be unfair
13:49
to existing runs
Avatar
not if its easier
Avatar
i think this was discussed
13:50
xd
Avatar
just if it gets harder 😄
13:50
i think we shouldnt always think too much about such things.. just do it and fix the 10 maps that are affected by it
Avatar
I'm not sure if this is the correct way to do it.

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://...
Avatar
@Jupstar ✪ is this how its done?
14:11
xd
Avatar
Avatar
Ryozuki
@Jupstar ✪ do u think we could somehow make teles predictable by e.g when server starts, generate a seed that is then known by the client
We discussed making tele predictable on the client, it's not exactly trivial though
14:20
To make it predictable the client needs to know the initial seed AND how far along we are on the generator. So I think it'll have to be a per client prng
Avatar
just seed it everytime 4heafd
Avatar
ez
Avatar
Seeding it with tick idk, does the client even have a way to correctly predict the tick a tele will happen on? I think it'd be better if the destination was set as soon as someone begins a run maybe
Avatar
use 0 as seed
14:22
problems solved
Avatar
Or maybe make it windows of 10 sec within which the destination is set
Avatar
we just need to fake a bit of randomness
14:23
so players dont see it
14:23
xdxd
Avatar
changing it in any way could already be viewed as breaking old ranks anyway
14:23
just remove it xD
14:23
xDDD
14:23
true
14:23
the oldschool players are angry else
Avatar
The problem isn't the quality of the randomness, whatever "fake" randomness you come up with will have to overcome the same problem
Avatar
hm now that i did the tooltips, maybe i can implement a guide/tour/tutorial over the settings
14:24
with a cute tee by the side
14:24
twinbop
Avatar
The client needs to know the destination for a telein, it needs to be resistant to packets being dropped
Avatar
Avatar
Ryozuki
with a cute tee by the side
ngl would love it
14:27
fan service
Avatar

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--u...
Avatar
Avatar
Ryozuki
and it didnt work because i forgot to set the server in test mode
still better then running the wrong code and wondering why your changes do nothing, reverting your changes and noticing 10min later that you have run the wrong code
Avatar
Avatar
Jupstar ✪
use 0 as seed
warm up tick (m_StartTime) could be used for seed, so the tick you step over the start line. (edited)
Avatar
Avatar
Ryozuki
with a cute tee by the side
animated helper tee let's go poggers
Avatar
Avatar
Ryozuki
hm now that i did the tooltips, maybe i can implement a guide/tour/tutorial over the settings
omg are you thinking about making a ddnet clippy
15:36
like louis video
Avatar
d45448f Fix asan CI - ChillerDragon 585b95d Merge #5005 - bors[bot]
Avatar
646162e make super ignore livefreeze, fix #4973 - edg-l b84a347 Merge #5002 - bors[bot]
Avatar
im trying i2p
18:03
looks like something way better than tor
Avatar
Could we make the tooltip delay 500ms instead of 1000ms? 1000ms feels like forever
Avatar
maybe we should make it a setting
Avatar
xD
Avatar
firefox uses 500ms :)
Avatar
just take 777ms
Avatar
777 is lucky number xd
18:36
@Jupstar ✪ lets add AMD FSR
18:36
to get 20k fps
Avatar
when you give someone a hammer, everything is a nail
Avatar
Avatar
Ryozuki
@Jupstar ✪ lets add AMD FSR
does that only work with the devs enabling it?
Avatar
FidelityFX Super Resolution. Contribute to GPUOpen-Effects/FidelityFX-FSR development by creating an account on GitHub.
Avatar
is there not like a global setting?
18:38
it has to be implemented
18:38
by devs
18:38
iirc it has smth to do with shaders
18:39
FidelityFX Super Resolution. Contribute to GPUOpen-Effects/FidelityFX-FSR development by creating an account on GitHub.
18:39
here is the vulkan code
18:39
(example vulkan code*)
Avatar
we need faster CPUs, worth it more for ddnet xd
18:40
ye
18:40
also this is wortth more for 3d
18:40
xd
18:40
but it rly gives shitload of fps
Avatar
does ddnet even run faster at lower resolutions? I assumed it was cpu capped
Avatar
eh having a gpu can increase ur fps
18:41
if u come from not having one
18:41
xd
18:41
afterwards it doesnt improve much
18:41
i think
Avatar
that makes sense
Avatar
maybe if we used rust
18:41
we could
18:42
safely paralelize the entities and the gameworld
18:42
but we live in c++ land
18:42
monkalaugh
18:42
and that would be more complicated
18:43
theorically the gameworld, which manages the entities
18:43
is like a ECS
18:43
and usually ECS are highly paralel
18:43
but not here
18:43
feelsbadman
Avatar
Avatar
Ryozuki
safely paralelize the entities and the gameworld
as long it doesnt change pyshics, pls add
Avatar
i wont do it in c++
18:44
i would shoot my foot
Avatar
yes do it in rust
Avatar
i take all perf hehehe
Avatar
i think teeworlds would fit rly well using bevy
Avatar
rust has something like a packet manager right?
Avatar
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
Avatar
so its ez to use libs
Avatar
look how the ECS in bevy works
18:44
its rly gud
Avatar
Avatar
Jupstar ✪
so its ez to use libs
yes cargo
Avatar
yes thats the best actually
18:45
no excuses anymore to just use libs xd
Avatar
ye its only c land where deps suck to add
Avatar
well its a windows problem actually
18:45
if we only target linux its fine
18:45
imo
18:46
ok and android, and maybe other os
18:46
lets say it would work on linux xd
Avatar
but crossplatform packet manager built in is awesome
Avatar
cargo is awesome ngl
18:46
it makes life easier
Avatar
start with server
Avatar
its too much work
18:47
xd
Avatar
bcs i also want to transfer fng to ddnet code
18:47
just do it xd
Avatar
dont think about it
Avatar
The scripts/integration_test.sh runs two clients and one server. Lets the two clients connect for a few seconds. The goal is to get some automated runtime tests. Even tho the the two clients do not move they will touch a few gametiles by falling through them. This covers a few basic game mechanics like: freeze, draggers, solo, shields, collision, player collision and map finishes. This pr adds a new directory test/ at the root of the repository. Holding a test map. (not sure if th...
Avatar
can someone tell me how to use the insert function from array.h?
Avatar
r u sure u want to use insert? not add?
20:34
insert is for a specific index iirc
Avatar
Arguments: item - Item to insert. r - Range where to insert the item r is of type range, you can create it like: plain_range(T *begin, T *end)
Avatar
add is just at the end, I want it in a specific spot
Avatar
idk why we dont just use std::array
20:35
xd
Avatar
basically I'm making duplicating of map layers & groups and it'd be nice to insert next to the original layer and not at the end
Avatar
wasn't there a story about pulling stdlib dependency?
Avatar
stop dreaming about parallelism and ECS make accounts system, skin store and buy anti-DDoS hosting) 🥺🥺🥺
Avatar
idk whats more a dream
20:38
what i said or urs
20:38
xd
Avatar
Avatar
c0d3d3v
Arguments: item - Item to insert. r - Range where to insert the item r is of type range, you can create it like: plain_range(T *begin, T *end)
lol I do not even see a reason why r is a range and not a index xD it is used like a index. only the beginning value is changed, so at r.front() is a new value inserted, all other are moved one step
Avatar
Avatar
Matodor
stop dreaming about parallelism and ECS make accounts system, skin store and buy anti-DDoS hosting) 🥺🥺🥺
and server side interaction with user interface, for custom mods 🥺🥺🥺
Avatar
Ok, let's split the tasks, we make account system, you buy the anti-ddos hosting
Avatar
Avatar
Learath2
Ok, let's split the tasks, we make account system, you buy the anti-ddos hosting
I buy skins in the store - you buy anti-ddos hosting bluekitty
Avatar
chillerdragon BOT 2022-04-18 20:39:33Z
@pinkrat
Avatar
Since we obviously never tried any ddos protection, we most certainly didn't try all the accesible ones on the market. Maybe with your sage knowledge you can lead us to a better future
Avatar
chillerdragon BOT 2022-04-18 20:40:11Z
Hahaha learath being personally offended and emotional again :D
Avatar
Noo not at all
Avatar
chillerdragon BOT 2022-04-18 20:40:40Z
Nono
20:41
You are so toxic I’m literally laughing out loud
Avatar
I as a completely mentally stable human being would never be toxic, I'm kind and nurturing
Avatar
well that guy is just aasking features like they are free candy
20:41
thats toxic
Avatar
chillerdragon BOT 2022-04-18 20:41:58Z
Ikr
20:42
But poor learath let’s it get the best of him
Avatar
Avatar
c0d3d3v
Arguments: item - Item to insert. r - Range where to insert the item r is of type range, you can create it like: plain_range(T *begin, T *end)
T should be the type of what I'm trying to insert? doesn't look like I can do it with CLayer*
Avatar
Avatar
Ravie
T should be the type of what I'm trying to insert? doesn't look like I can do it with CLayer*
no int
20:42
xD
20:42
I think
20:42
but just without T
20:43
ah I have no idea xD
Avatar
chillerdragon BOT 2022-04-18 20:43:48Z
No offense learath bae I love you! You know that right?
Avatar
You want a one item range, the item to insert before. Something like plain_range(&arr[idx], &arr[idx+1])
Avatar
xD that makes sense
20:45
but I think it should be range not plain_range
Avatar
Avatar
chillerdragon
Hahaha learath being personally offended and emotional again :D
more like passive aggressive
Avatar
Could be, I always forget the range classes available
20:46
typeof(arr)::range actually
20:47
array<CLayer *>::range if you don't like typeof
Avatar
Avatar
Ravie
T should be the type of what I'm trying to insert? doesn't look like I can do it with CLayer*
Ah I understand now. if your array is called "layers" you could do range all_layers = layers.all(); layers.insert(newitem, all_layers.slice(index_to_insert, index_to_insert + 1));
20:50
who the fuck thought this is a good idea, and why is it not used anywhere xD
Avatar
I guess a slice is better
20:52
It was an early attempt at creating something like the c++20 ranges, way back in the day
Avatar
Avatar
Learath2
It was an early attempt at creating something like the c++20 ranges, way back in the day
maybe but why is there then a remove_index(int index) function xD he could also made the function insert_index(const T &item, int index) instead, same effect, less strange
Avatar
These early container types weren't exactly very thought out. I bet he found the range interface equally annoying when removing something one day and just added a remove_index
Avatar
Avatar
c0d3d3v
who the fuck thought this is a good idea, and why is it not used anywhere xD
ah it is used only once, that is for sorted_array.h in the add() function (edited)
Avatar
yep the lack of examples is what makes it so hard to figure out
Exported 393 message(s)