Size: a a a

2020 July 30

D

Danya in supapro.cxx
Егор
так оба варианта подходят, не? Вроде бы у автора вопроса другая ситуация
Другая, но важно понимать почему это не работает
источник

D

Danya in supapro.cxx
Егор
так оба варианта подходят, не? Вроде бы у автора вопроса другая ситуация
Ну чисто логически второй вариант подходит лучше, не находишь? Он же более специализирован
источник

Е

Егор in supapro.cxx
Danya
Ну чисто логически второй вариант подходит лучше, не находишь? Он же более специализирован
Я концепты не трогал, если requires просто в булевое значение зарезолвится, то какая разница
источник

D

Danya in supapro.cxx
Егор
Я концепты не трогал, если requires просто в булевое значение зарезолвится, то какая разница
вооот, ты почти прав
template <typename T1, typename T2>
 requires std::same_as<T1, T2>
void foo() {}

template <typename T1, typename T2>
 requires std::same_as<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}

foo(3, 4) // ok, calling more specific foo
источник

Е

Егор in supapro.cxx
Danya
вооот, ты почти прав
template <typename T1, typename T2>
 requires std::same_as<T1, T2>
void foo() {}

template <typename T1, typename T2>
 requires std::same_as<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}

foo(3, 4) // ok, calling more specific foo
а в чем прикол, у концептов приоритет больше или что-то в этом роде? Компиль будет суммарный приоритет считать для каждого условия?
источник

D

Danya in supapro.cxx
Нет
источник

D

Danya in supapro.cxx
Прикол в том, что requires ничего не знает об условии справа в первом случае, потому что это тайп трейты, то есть для него обычные булы
А про концепты он знает и у него есть выбор
1) foo с концептом
2) foo с концептом и чем-то ещё
Поэтому тут нет проблем с выбором перегрузки
источник

Е

Егор in supapro.cxx
Danya
Прикол в том, что requires ничего не знает об условии справа в первом случае, потому что это тайп трейты, то есть для него обычные булы
А про концепты он знает и у него есть выбор
1) foo с концептом
2) foo с концептом и чем-то ещё
Поэтому тут нет проблем с выбором перегрузки
Так а почему https://t.me/supapro/718535 то? Выходит чем больше концептов удовлетворяется, тем больше приоритет
источник

D

Danya in supapro.cxx
Егор
Так а почему https://t.me/supapro/718535 то? Выходит чем больше концептов удовлетворяется, тем больше приоритет
В перегрузках 1 и 2 одинаковое количество концептов
источник

TS

Till Schneider in supapro.cxx
Dollar Føølish
Или для кроме basic_string<char> это не будет работать?
будет работать и для basic_string<MyClass>
источник

Е

Егор in supapro.cxx
Danya
В перегрузках 1 и 2 одинаковое количество концептов
Ой. Ну в целом я понял вроде
источник

d

dekabr in supapro.cxx
То есть requires это необходимое условие а concept необходимое+достаточное и чем специфичнее тем лучше?
источник

D

Danya in supapro.cxx
Егор
Ой. Ну в целом я понял вроде
Ну типа надо просто понимать что в requires все, что не концепт, обычный бул
источник

D

Danya in supapro.cxx
dekabr
То есть requires это необходимое условие а concept необходимое+достаточное и чем специфичнее тем лучше?
Я не очень понял это сообщение, но наверное нет
источник

DB

Dimmu Borgir in supapro.cxx
Danya
Я не думаю что куча состоит из таких блоков, откуда куча должна знать сколько пользователь заиспользовал памяти из выделенного куска?
void pushBack(T data)
 {
   T* temp = new T[size + 1];
   memcpy(temp, arr, sizeof(T) * size);
   delete[]arr;
   arr = temp;
   arr[size] = data;
   size++;
 }
источник

D

Danya in supapro.cxx
Dimmu Borgir
void pushBack(T data)
 {
   T* temp = new T[size + 1];
   memcpy(temp, arr, sizeof(T) * size);
   delete[]arr;
   arr = temp;
   arr[size] = data;
   size++;
 }
И зачем мне это?
источник

DB

Dimmu Borgir in supapro.cxx
Danya
И зачем мне это?
наверху написал
источник

D

Danya in supapro.cxx
Dimmu Borgir
наверху написал
Ещё раз, зачем мне на это лицезреть?)
источник

D

Danya in supapro.cxx
Dimmu Borgir
void pushBack(T data)
 {
   T* temp = new T[size + 1];
   memcpy(temp, arr, sizeof(T) * size);
   delete[]arr;
   arr = temp;
   arr[size] = data;
   size++;
 }
Не memcpy, а std::copy
источник

DB

Dimmu Borgir in supapro.cxx
Danya
Ещё раз, зачем мне на это лицезреть?)
ну спросил скинул)
источник