Size: a a a

2020 August 28

D

Danya in supapro.cxx
Constantine Drozdov
constexpr auto f(int arg) //arg не constexpr
Ну если функция вызывается в constant context, то arg тоже constant expression должно быть
источник

CD

Constantine Drozdov in supapro.cxx
Danya
Ну если функция вызывается в constant context, то arg тоже constant expression должно быть
ась?
источник

CD

Constantine Drozdov in supapro.cxx
она может быть и в рантаймовом
источник

CD

Constantine Drozdov in supapro.cxx
так что вернуть function<string(int)> не получится из "%d"
источник

D

Danya in supapro.cxx
Constantine Drozdov
она может быть и в рантаймовом
Если функция вызывается в constant context, то arg тоже constant expression, иначе ошибка компиляции
источник

CD

Constantine Drozdov in supapro.cxx
Danya
Если функция вызывается в constant context, то arg тоже constant expression, иначе ошибка компиляции
это где такие правила?)
источник

D

Danya in supapro.cxx
Constantine Drozdov
это где такие правила?)
int arg;
std::cin >> arg;
constexpr auto res = f(arg); // error
источник

CD

Constantine Drozdov in supapro.cxx
template <int x> struct s{};
constexpr auto foo(int arg) {
   s<arg>(); // error: non-type template argument is not a constant expression
}
источник

AK

Alexey Khramov in supapro.cxx
Добрый день, помогите пожалуйста расшифровать, какой тип у второго аргумента функции:
template <typename T, typename M>
void foo(const std::string& str, M T::*mp) {...}

?
источник

AS

Anatoly Shirokov in supapro.cxx
Alexey Khramov
Добрый день, помогите пожалуйста расшифровать, какой тип у второго аргумента функции:
template <typename T, typename M>
void foo(const std::string& str, M T::*mp) {...}

?
указатель на член данных класса T c типом M
источник

AK

Alexey Khramov in supapro.cxx
Anatoly Shirokov
указатель на член данных класса T c типом M
Спасибо!
источник

V

Viαη in supapro.cxx
не нужно же очищать память с помощью delete?

unsigned char* int32_to_chars(int n){
 unsigned char bytes[4];
 bytes[0] = (n >> 24) & 0xFF;
 bytes[1] = (n >> 16) & 0xFF;
 bytes[2] = (n >> 8) & 0xFF;
 bytes[3] = n & 0xFF;
 return bytes;
}
источник

AP

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

AS

Anatoly Shirokov in supapro.cxx
Viαη
не нужно же очищать память с помощью delete?

unsigned char* int32_to_chars(int n){
 unsigned char bytes[4];
 bytes[0] = (n >> 24) & 0xFF;
 bytes[1] = (n >> 16) & 0xFF;
 bytes[2] = (n >> 8) & 0xFF;
 bytes[3] = n & 0xFF;
 return bytes;
}
ты возвращаешь указатель на массив в стеке, который забъется мусором после выхода
источник

D

Danya in supapro.cxx
Viαη
не нужно же очищать память с помощью delete?

unsigned char* int32_to_chars(int n){
 unsigned char bytes[4];
 bytes[0] = (n >> 24) & 0xFF;
 bytes[1] = (n >> 16) & 0xFF;
 bytes[2] = (n >> 8) & 0xFF;
 bytes[3] = n & 0xFF;
 return bytes;
}
Интересно ты решил память локальную отдать во вне
источник

V

Viαη in supapro.cxx
Danya
Интересно ты решил память локальную отдать во вне
а, точно
источник

AP

Alexander Potapov in supapro.cxx
Я бы возвращал std::array
источник

D

Danya in supapro.cxx
Alexander Potapov
Я бы возвращал std::array
+
источник

V

Viαη in supapro.cxx
Alexander Potapov
Я бы возвращал std::array
это си
источник

Г

Генерал in supapro.cxx
Viαη
не нужно же очищать память с помощью delete?

unsigned char* int32_to_chars(int n){
 unsigned char bytes[4];
 bytes[0] = (n >> 24) & 0xFF;
 bytes[1] = (n >> 16) & 0xFF;
 bytes[2] = (n >> 8) & 0xFF;
 bytes[3] = n & 0xFF;
 return bytes;
}
а че функция делает?
источник