Вопросы с тегом «c++»

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

1
Безопасно ли для параллелизма вызывать concurrency :: concurrent_vector :: push_back при переборе этого concurrent_vector в другом потоке?
push_back , begin , end описаны как параллельный сейф в https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back Однако приведенный ниже код утверждает. Возможно, потому что элемент добавлен, но еще не инициализирован. struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) -> void …

3
foo (void *) против foo (void *)
Говоря функционально и синтаксически, есть ли разница между функцией, прототип которой int foo(void)и int foo(void *)? Я знаю разницу между, например, int bar(int)и int bar(int *)- один из них ищет int, а другой ищет указатель int. Ведет ли voidсебя так же?


1
Как вызвать методы двигателя флаттера из другого потока
Я использую настольный компьютер для Linux. Я MarkTextureFrameAvailableвызываю метод, который должен пометить текстуру, которая должна быть обработана движком. Поскольку я программирую видеоплеер, мне нужно позвонить MarkTextureFrameAvailableиз ветки плеера. Проблема в том, что двигатель заставляет меня вызывать MarkTextureFrameAvailable(и любой другой метод двигателя) из потока, который создал двигатель. Вы можете видеть, что …

1
Правильна ли эта реализация C ++ AtomicInt?
Предпосылка: я работаю со встроенной (почти голой) средой ARM, где у меня даже нет C ++ 11 (с std::atomic<int>), поэтому избегайте ответов типа « просто используйте стандартный C ++std::atomic<int> »: я не могу . Является ли эта ARM- реализация AtomicInt правильной? (предположим, что архитектура ARM - это ARMv7-A ) Вы …

3
list :: empty () многопоточное поведение?
У меня есть список, из которого я хочу, чтобы разные темы брали элементы. Во избежание блокировки мьютекса, защищающего список, когда он пуст, я проверяю empty()перед блокировкой. Это нормально, если вызов list::empty()100% времени неправильный. Я только хочу , чтобы избежать сбоя или нарушений одновременно list::push()и list::pop()вызовов. Могу ли я предположить, что …

3
Генерация лямбда-кода на C ++ с помощью Init Capture на C ++ 14
Я пытаюсь понять / уточнить код кода, который генерируется, когда перехваты передаются лямбдам, особенно в обобщенных перехватах инициализации, добавленных в C ++ 14. Дайте следующие примеры кода, перечисленные ниже, это мое текущее понимание того, что сгенерирует компилятор. Случай 1: захват по значению / захват по умолчанию по значению int x …
9 c++  lambda  c++14  move 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.