спасибо за подгон Мишане (@tut_pro_art) — сгенерировали с помощью @AIMemeArenaBot
На канале MLE шатает Produnction вы сможете погрузиться в захватывающий мир черной магии с нейронными сетями в Yandex. Здесь автор @toshiksvg расскажет вам о различных инструментах разработки, поделится курьезными случаями и выразит свое мнение об IT индустрии. Вы узнаете о последних технологических новинках, тенденциях и интересных проектах, связанных с машинным обучением и искусственным интеллектом. Присоединяйтесь к нам, чтобы быть в курсе всех событий в мире технологий и стать частью сообщества, увлеченного разработкой и инновациями.
07 Feb, 15:30
07 Feb, 10:58
07 Feb, 06:33
06 Feb, 06:58
03 Feb, 21:13
03 Feb, 08:09
03 Feb, 07:42
02 Feb, 20:57
02 Feb, 20:50
30 Jan, 12:21
27 Jan, 17:55
27 Jan, 06:05
24 Jan, 10:40
22 Jan, 19:17
21 Jan, 22:21
21 Jan, 21:37
#include <atomic>
#include <chrono>
#include <cstdlib>
#include <iostream>
#include <thread>
std::atomic<uint8_t> n;
void P() {
uint8_t temp;
for (size_t ii = 0; ii < 10; ++ii) {
temp = n.load() + 1;
n.store(temp);
}
}
int main() {
std::thread t1{P}; std::thread t2{P};
t1.join(); t2.join();
std::cout << "n = " << uint64_t(n) << std::endl;
}
n
может получиться в результате исполнения программы?18 Jan, 10:29
16 Jan, 09:28
13 Jan, 03:56
11 Jan, 09:36
11 Jan, 08:58
10 Jan, 19:38
09 Jan, 18:27
09 Jan, 16:29
08 Jan, 20:03
08 Jan, 19:45
07 Jan, 15:08
05 Jan, 06:39
int fun(int a, int b) {
int c = 0;
switch (a) {
case 0: if (b == 0) {
case 1: c = 1;
break;
} else {
default: c = 2;
break;
}
}
return c;
}
case
/default
— это метка.
cout << fun(0, 0) << fun(0, 1) << fun(1, 0) << fun(1, 1) << fun(2, 0) << fun(2, 1);
121122
. Пруф.03 Jan, 14:35
20 Dec, 21:02
07 Dec, 20:42
28 Nov, 20:04
26 Nov, 19:20
23 Nov, 20:28
23 Nov, 12:06
19 Nov, 20:01
28 Oct, 18:48
26 Oct, 21:02
26 Oct, 20:57
21 Oct, 06:10
17 Oct, 16:00
16 Oct, 09:45
13 Oct, 09:32
13 Oct, 08:53
int
на C++
реализовать функцию swap
(переставляет значения переменных между собой) самую примитивную:
void swap1(int &a, int &b) {
int t = a;
a = b;
b = t;
}
-O2
оптимизации в clang 19.1.0
покажет:
swap1(int&, int&):
mov eax, dword ptr [rdi]
mov ecx, dword ptr [rsi]
mov dword ptr [rdi], ecx
mov dword ptr [rsi], eax
ret
void swap2(int &a, int &b) {
int t1 = a;
int t2 = b;
a = t2;
b = t1;
}
13 Oct, 06:16
03 Oct, 09:22
29 Sep, 20:36
27 Sep, 12:47
25 Sep, 23:04
22 Sep, 20:51
UB
, и нужно использовать std::launder
. Но в действительности сейчас (С++20
+) — там будет 1 2 2
.C++20
), что в случае, когда на куске памяти, куда ссылается указатель объекта, создается новый объект, то все ссылки и указатели старого объекта начинают ссылаться на новый объект, КРОМЕ случаев, когда, например, объект содержит в себе константные члены. Ссылка тык.C++20
все буллеты в этом пункте убрали, таким образом ослабили требования на типы данных. Мотивация была в том, что всякие контейнеры, которые используют placement new
было ограничены в использовании и было сложно использовать такие контейнеры для определенных типов данных, потому что по стандарту это было бы UB
.20 Sep, 05:13
struct Lol {
const int kek;
};
void test() {
Lol *cheburek = new Lol{1};
const int a = cheburek->kek;
Lol *cheburek1 = new (cheburek) Lol{2};
const int b = cheburek1->kek;
const int c = cheburek->kek;
std::cout << a << ' ' << b << ' ' << c << std::endl;
}
18 Sep, 17:21
bash
, можно быстро на python
скрипт накатать. А для тех, кто использует zsh
есть простая альтернатива: zmv
..zshrc
положить:
autoload zmv
zmv [OPTIONS] oldpattern newpattern
zmv '(*).lis' '$1.txt'
-n
:
zmv -n '(*).lis' '$1.txt'
cp
и ln
в командах zcp
и zln
.04 Sep, 10:45