this post was submitted on 24 Sep 2023
1 points (66.7% liked)

C++

1755 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
 

i was trying to create a deque, and when the function that resizes the array is excuted, it crashes with the error from the title, and when i delete the deallocate() it stops happening, what im doing wrong? code: https://pastebin.com/0yHHcLnj

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 1 year ago (1 children)

i used tthe tester class with my code removing the .deallocate(), and although it doesnt crash, it still runs the destructor multiple times on the same element, i think its because im just pushing i into the container, and because that constructor creates an implicit conversion between int and ContainerTester, it creates a temporary object that gets destroyed once it is pushed into the deque, am i right?

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)
  1. sorry that I let you down yesterday
  2. as an excuse, I have fixed and commented your code. (remember to compile it with -std=c++20)
[–] [email protected] 1 points 1 year ago (1 children)

dont worry, i have one more question, i should initialize variables with = or with {}?

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Direct initialization is recommended over copy initialization (=).

Okay, to be fair: it's some sort of holy war, the answer depends on who you ask.