Size: a a a

2020 December 06

RP

Roman Proskuryakov in pro.cxx
Тогда на уровне компиляции разрулит, что та треда и та треда не пересекаются
источник

RP

Roman Proskuryakov in pro.cxx
источник

d

disba1ancer in pro.cxx
Roman Proskuryakov
даст, если использовать scoped threads
По моему Раст это про обход ненужных защит от дурака...
источник

RP

Roman Proskuryakov in pro.cxx
ну да, судя по ответам в этом чате, раст крайне полезная штука
источник

d

disba1ancer in pro.cxx
Alexey
Всем привет. вот и у меня появился вопрос для сообщества
Есть такой цикл:
auto &ref = <some vector>
for (size_t pos = 0; pos < ref.size(); pos++) {
 . . .
 wait(); //тут текущий поток находится в ожидании, при этом в вектор ref могут добавиться элементы
}
Тут ведь нельзя быть уверенным, что в условии цикла ref.size() не будет закеширован оптимизатором и добавленные элементы в цикле обработаются?
Вообще, судя по тому, как у тебя записан алгоритм, компилятору нужно доказать, что размер не изменится, что в данном случае сделать очень сложно, так что и так должно прокатить, имхо
источник

A

Alexey in pro.cxx
он же не будет сам следить за другими потоками
источник

A

Alexey in pro.cxx
а в этом всё чисто
источник

A

Alexey in pro.cxx
вот если, как тут выше писали, wait добавит барьер памяти, то, наверное всё ок
источник

d

disba1ancer in pro.cxx
Alexey
он же не будет сам следить за другими потоками
Ты же сам говорил что у wait под компотом кондвар, значит он синхронизирует и выставляет барьеры
источник

A

Alexey in pro.cxx
но надо уточнить (лично мне, так как моя консерватория про барьеры памяти имеет пробелы)
источник

d

disba1ancer in pro.cxx
Alexey
но надо уточнить (лично мне, так как моя консерватория про барьеры памяти имеет пробелы)
Тебе надо чего-нибудь про многопоток почитать, вот только я не знаю что посоветовать...
источник

A

Alexey in pro.cxx
ну почитать никогда не вредно, но я не так, чтобы уж полный нуб, есличо
источник

A

Alexey in pro.cxx
короче, всем спасибо, думаю мне пока этого хватит
источник

AT

Alexander Tulikov in pro.cxx
Alexey
но надо уточнить (лично мне, так как моя консерватория про барьеры памяти имеет пробелы)
источник

HH

Hoot Hoot in pro.cxx
Hoot Hoot:
Не работает программа

#ifndef UNICODE
#define UNICODE
#endif

#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
// Register the window class.
const wchar_t CLASS_NAME[] = L"Sample Window Class";

WNDCLASS wc = { };

wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;

RegisterClass(&wc);

// Create the window.

HWND hwnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
L"Learn to Program Windows", // Window text
WS_OVERLAPPEDWINDOW, // Window style

// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);

if (hwnd == NULL)
{
return 0;
}

ShowWindow(hwnd, nCmdShow);

// Run the message loop.

MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);



FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));

EndPaint(hwnd, &ps);
}
return 0;

}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

Что не так?
источник

FS

Flower Surgeon in pro.cxx
Hoot Hoot
Hoot Hoot:
Не работает программа

#ifndef UNICODE
#define UNICODE
#endif

#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
// Register the window class.
const wchar_t CLASS_NAME[] = L"Sample Window Class";

WNDCLASS wc = { };

wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;

RegisterClass(&wc);

// Create the window.

HWND hwnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
L"Learn to Program Windows", // Window text
WS_OVERLAPPEDWINDOW, // Window style

// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);

if (hwnd == NULL)
{
return 0;
}

ShowWindow(hwnd, nCmdShow);

// Run the message loop.

MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);



FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));

EndPaint(hwnd, &ps);
}
return 0;

}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

Что не так?
источник

Д

Данил in pro.cxx
даров парни
источник

Д

Данил in pro.cxx
можете посмотреть
источник

Д

Данил in pro.cxx
using namespace std;
#include <iostream>

int main(int argc, char **argv)
{
 int i, min, n;      
   cout <<"enter the number of elements of the array\n";
   cin >>n;      
   cout << "Input massiv A\n";
   n=n-1;
   int a[n];    
   for (i=0; i<=n; i++){
   
   cin >> a[i];
 }
   min=a[0];    
   for (i=0; i<=n; i++)
   {
    y= (abs(a[i]));  
       if (y < min) {
           min = y;
       }
   
   
    cout<<"unpaired elements = "<<a[i]<<endl;  
     
     
   }
   cout << "min= " << min << endl;
 return 0;
}
источник

Д

Данил in pro.cxx
ошибка в н=
источник