Size: a a a

2020 August 12

ПП

Привет Пока... in C++ Together 2.0
хелп
источник

ПП

Привет Пока... in C++ Together 2.0
источник

AB

Artöm Bakri Al-Sarmi... in C++ Together 2.0
szClassName какого типа?
источник

ПП

Привет Пока... in C++ Together 2.0
тип char
источник

AB

Artöm Bakri Al-Sarmi... in C++ Together 2.0
А должен быть TCHAR*
источник

CC

Cool Cooler in C++ Together 2.0
void InsertRepairTree(Node* n) {
 if (GetParent(n) == nullptr) {
   InsertCase1(n);
 } else if (GetParent(n)->color == BLACK) {
   InsertCase2(n);
 } else if (GetUncle(n) != nullptr && GetUncle(n)->color == RED) {
   InsertCase3(n);
 } else {
   InsertCase4(n);
 }
}
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
void InsertRepairTree(Node* n) {
 if (GetParent(n) == nullptr) {
   InsertCase1(n);
 } else if (GetParent(n)->color == BLACK) {
   InsertCase2(n);
 } else if (GetUncle(n) != nullptr && GetUncle(n)->color == RED) {
   InsertCase3(n);
 } else {
   InsertCase4(n);
 }
}
Это UB?
источник

T

Timur Bairamukov 🚫🧢... in C++ Together 2.0
Классно функции названы кста
источник

T

Timur Bairamukov 🚫🧢... in C++ Together 2.0
InsertCase(1/2/3/4)
источник

T

Timur Bairamukov 🚫🧢... in C++ Together 2.0
Хотя, наверное и так сойдёт
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
void InsertRepairTree(Node* n) {
 if (GetParent(n) == nullptr) {
   InsertCase1(n);
 } else if (GetParent(n)->color == BLACK) {
   InsertCase2(n);
 } else if (GetUncle(n) != nullptr && GetUncle(n)->color == RED) {
   InsertCase3(n);
 } else {
   InsertCase4(n);
 }
}
Мне кажется, InsertCase3(n); должен быть обёрнут в два if'а, один проверяет, что GetUncle(n) != nullptr, а второй, внутренний, исполняется только если первый true, и он проверяет, что GetUncle(n)->color == RED
источник

CC

Cool Cooler in C++ Together 2.0
А то если Getuncle(n) == nullptr, то ведь сегфолт можно поймать
источник

CC

Cool Cooler in C++ Together 2.0
Или нет?
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
Нет
источник

CC

Cool Cooler in C++ Together 2.0
&& гарантирует, что правая часть не будет выполняться, если левая ложна?
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
Уверен, что оптимизация булевых выражений есть уже примерно везде
источник

CC

Cool Cooler in C++ Together 2.0
Ну а строго говоря, это UB или нет?
источник

CC

Cool Cooler in C++ Together 2.0
Evgeniy Pichuzhkin
Уверен, что оптимизация булевых выражений есть уже примерно везде
А она гарантированно присутствует?
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
Cool Cooler
А она гарантированно присутствует?
С отсылками на стандарт
https://stackoverflow.com/a/6801857
источник

CC

Cool Cooler in C++ Together 2.0
Evgeniy Pichuzhkin
Уверен, что оптимизация булевых выражений есть уже примерно везде
Кста, а ведь такая оптимизация может ошибиться
Вдруг GetUncle(n) делает что-то, что изменяет состояние программы
И прогер как раз должен был вызвать GetUncle 2 раза в любом случае
А оптимизация булевых выражений может это словать
источник