for (int i = str; i < m-1; i++) {
for (int j = 0; j <= n; j++)
{
B[i][j] = A[i + 1][j];
}
}
j < n
for (int i = 0; i < m; i++)
i < m - 1
k
стоит выкинуть из кода и заменить на m - 1
Или из первого кэша, если линий кэша мало и она удаляется - она переносится в кэш второго уровня?
constexpr const unsigned long long int wtoi(const wchar_t* str) { unsigned long long int result = 0; for (int i = 0; str[i]; i++) { int digit = getIntFromWchar_t(str[i]); if (digit < 0 || digit > 9) break; result = result * 10 + digit; } return result; }
constexpr const int getIntFromWchar_t(wchar_t chr) { switch (chr) { case L'0': return 0; case L'1': return 1; case L'2': return 2; case L'3': return 3; case L'4': return 4; case L'5': return 5; case L'6': return 6; case L'7': return 7; case L'8': return 8; case L'9': return 9; default: return 10; } }
int getIntFromWchar_t(wchar_t chr) {
return chr - L'0';
static_assert(L'1' == L'0' + 1);
static_assert(L'2' == L'1' + 1);
static_assert(L'3' == L'2' + 1);
static_assert(L'4' == L'3' + 1);
static_assert(L'5' == L'4' + 1);
static_assert(L'6' == L'5' + 1);
static_assert(L'7' == L'6' + 1);
static_assert(L'8' == L'7' + 1);
static_assert(L'9' == L'8' + 1);
}
СЛУЧАЙНАЯ СТРОКА, КОТОРАЯ ГЕНЕРИРУЕТСЯ ПРИ КОМПИЛЯЦИИ
это нормальная практика, или может быть какая ошибка в случае, когда 2 объекта А одновременно вызывают метод из Б?
int global;
class B
{
static int class_static;
public:
void f()
{
static int function_static;
}
};
Смысл его прост: отменить действие макроса в определенной части кода, а по ее истечении восстановить этот макрос.
#define temp func
значение макроса func не подставляется. В temp попадает буквально слово func
. После #undef func
содержимое макроса func будет потеряно. Это поведение предписано стандартом, мне неизветсны опции компилятора, которыми его можно было бы изменить. См. eelis.net/c++draft/cpp.replace#10 и eelis.net/c++draft/cpp.rescan#define foo bar
#define func foo
...
#undef func
...
#define func foo
typedef int (*function);
typedef int (*function)(void);
status = sqlite3_open_v2(TEMP_DB_PATH, &sql_db, SQLITE_OPEN_READONLY, NULL);
sqlite3_close(sql_db);
typedef sqlite3;
typedef int (*fn1) (sqlite3* db);
Как правильно передать управление в __asm?
__asm {
mov eax, hProcess
push 0
push eax
call TerminateProcess
}