c++- все статьи тега ➜ страница 12
Почему и массивы размера среды выполнения, и std:: dynarray в C++14?
Проект C++14 включает в себя массивы размера среды выполнения и контейнер std::dynarray. Из того, что я могу сказать, единственное реальное различие между ними состоит в том, что std::dynarray имеет интерфейс STL (например,, begin, end, size, и т.д.), в то время как массивы размера времени выполнения этого не делают. Так зачем же C++14 нужны они оба? Я понимаю, что массивы размера среды выполнения являются частью основного языка, в то время как std::dynarray является частью стандартной библиот ...
Решения Visual Studio в Qt Creator
Я использую Qt 4.5 и имею Qt Creator в качестве IDE. Меня это вполне устраивает. Я знаю, что мы можем открыть файлы .pro (из Qt Creator) в Visual Studio IDE. Но как насчет обратного? i. e Как я могу открыть решение visual studio Qt (.sln) в Qt Creator ? Возможно ли это, или я должен снова создать pro-файл для проекта? Есть и другие проекты Qt, которые создаются другими в Visual Studio IDE. Так что, если я должен использовать их, Могу ли я мигрировать эти решения Visual Studio для совместимого ...
Понимание std:: atomic:: compare exchange weak() в C++11
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak() является одним из примитивов compare-exchange, представленных в C++11. Это ... слабый в том смысле, что он возвращает false, даже если значение объекта равно expected. Это связано с тем, что ложная неудача на некоторых платформах, где для его реализации используется последовательность инструкций (а не одна, как на x86). На таких платформах переключение контекста, перезагрузка того же адреса (или строки кэша) друг ...
как поместить std:: string в boost:: lockfree:: queue (или альтернативу)?
Я пытаюсь поместить std::string s в boost::lockfree::queue s, чтобы мои потоки могли обновлять друг друга новыми данными. Когда я пытаюсь использовать boost::lockfree::queue<std::string> updated_data;, g++ говорит: В экземпляре ' class boost:: lockfree:: queue >': Ошибка: статическая ошибка утверждения: (буст::has_trivial_destructor::значение) Ошибка: статическая ошибка утверждения: (буст::has_trivial_assign::значение) Мне было показано в целом, что означают эти ошибк ...
Добавление библиотеки Boost в проект C++ в OS X Eclipse
Я пытаюсь получить установку проекта C++ с помощью boost file system library с помощью eclipse. Я следовал этим указаниям, чтобы установить boost в моей системе. Направления, где в значительной степени Скачать извлечение беги bootstrap.sh беги ./ архитектура bjam=комбинированная Похоже, все прошло нормально, никаких ошибок. Затем я запустил eclipse и создал новый тестовый проект под названием test с одним файлом под названием test.СРР. Код в нем есть это: #include <stdio.h> #inc ...
Как правильно вернуть не нулевой указатель
Я использую внешнюю библиотеку C в моей программе C++, и библиотека использует функцию обратного вызова, которая должна возвращать void*. Библиотека проверяет, не является ли возвращаемое значение NULL, что означает успех. Итак, что является лучшим способом, чтобы сказать ему, что все нормально? Я использую: return reinterpret_cast<void*>(1); Но это выглядит уродливо... Edit: спасибо за ответ, я останусь с этим: static int success; return &success; ...
Является ли хорошей практикой использование std:: vector в качестве простого буфера?
У меня есть приложение, которое выполняет некоторую обработку некоторых изображений. Учитывая, что я знаю ширину / высоту / формат и т. д. (Я делаю), и думаю только об определении буфера для хранения пиксельных данных: Тогда, вместо того чтобы использовать new и delete [] на unsigned char* и держать отдельную заметку о размере буфера, я думаю об упрощении вещей с помощью std::vector. Поэтому я бы объявил свой класс примерно так: #include <vector> class MyClass { // ... etc. ... ...
Двумерные массивы в JNI
Я начал работать с JNI. в которой я хочу вернуть двумерный массив из метода cpp и повторить в java. Я получил информацию для одномерного массива следующим образом: JNIExport jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj) Может ли кто-нибудь указать, как возвращать двумерные массивы из cpp и извлекать в java jni? EDIT я попытался следовать JNIEXPORT jobjectArray JNICALL Java_ObjectArrayTest_initDouble2DArray(JNIEnv *env, jclass cls, ...
Как решить расположение %UserProfile% программно в C++?
Я хотел бы найти каталог текущего профиля пользователя программно в C++. ...
Qt с QML в quick2 динамических столбцов изменение GridView в
Я использовал GridView для отображения ListModel. Первоначально я установил cellWidth в: cellWidth = grid.width/3 Для создания сетки из 3 столбцов. затем я хочу изменить количество столбцов на 2, поэтому я установил cellWidth в: cellWidth = grid.width/2 Дисплей GridView изменился. Но когда я изменяю размер окна рабочего стола контейнера, ячейки в gridview больше не изменяют размер. Что я должен сделать, чтобы исправить это? Пожалуйста, взгляните на следующий код: import QtQuick 2.1 imp ...
лязг не вывести аргумент шаблона в шаблон функции с переменным числом с varargs
Рассмотрим код: #include <tuple> template<class... Args, class T> T method(std::tuple<Args...>, Args..., T, ...) { return T(); } int main() { method(std::make_tuple<int, float, double>(1, 1.0f, 1.0), 1, 1.0f, 1.0, 1); } g++ так как 4.9 не имеет проблем с его компиляцией. clang++ с другой стороны дает ошибку: main.cpp:9:5: error: no matching function for call to 'method' method(std::make_tuple<int, float, double>(1, 1.0f, 1.0), ^~~~~~ m ...
Xcode-Mac App-Bootstrap проверить ошибку при запуске
Я создаю приложение C++ для Mac с помощью Xcode. Я делал это раньше без каких-либо проблем, но я начал новый проект несколько недель назад, и у этого есть проблемы. Сообщение о запуске Когда я запускаю приложение, это сообщение появляется в консоли после вызова SDL_GL_CreateContext bootstrap_check_in(): (os/kern) unknown error code (44c) Я никогда не видел этого раньше и не знаю, что это значит. Приложение все еще запускается, хотя. Открытие всплывающих окон osascript больше не работ ...
Функция передается в качестве аргумента шаблона
Я ищу правила, связанные с передачей функций шаблонов C++ в качестве аргументов. Это поддерживается C++ , как показано на примере здесь: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " << temp << std::endl; } int main() { doOperation<add1>(); doOperation<add2>(); } Однако изучить эту технику доволь ...
Не удается связать мои собственные статические библиотеки
Я пытаюсь добавить звуковую библиотеку в проект GLFW / OpenGL в windows. Я установил звуковой проект для вывода статической библиотеки (.библиотека). Он прекрасно компилируется. В моем основном проекте я добавляю ссылку на звук и зависимость от звука (чтобы изменить порядок сборки). Я включаю "..Звукзвук.h " в моем основном.cpp и Intellisense довольны всем. Все складывается хорошо. Однако линкер злится: 1>Link: 1> LINK : ###ProjectsDeathRaceDebugDeathRace.exe not found or not b ...
Разница между (++i) и (i++)
В C++ я понимаю, что (++i) должен возвращать ссылку на i, потому что требуется конкатенация операторов, но чего я не могу понять, так это: Почему (i++) должен возвращать i по значению? Может ли кто-нибудь уточнить. ...
Удаление массива указателей
Выполняет ли delete[] a, где a-динамический выделенный массив указателей, delete для каждого указателя в массиве? Я предполагаю, что он выполняет деструктор для массивов с пользовательскими классами, но что происходит с указателями? ...
На основе диапазона для цикла и std:: vector.push back () сбой программы
#include <iostream> #include <vector> int main() { std::vector<int> vec; for (int i = 0; i < 42; ++i) { vec.push_back(i); vec.push_back(-i); } for (int x: vec) { for (int y: vec) { vec.push_back(x + y); } } for (int x: vec) { std::cout << x << "n"; } } Что вызывает сбой этого кода? Я попытался скомпилировать его с помощью-fsanitize=address, получил ==9347==ERROR: AddressSanitizer: ...
Как преобразовать тип WORD в строку в Visual C++
Кто-нибудь может объяснить, как преобразовать слово в строку в C++, пожалуйста? typedef struct _appversion { WORD wVersion; CHAR szDescription[DESCRIPTION_LEN+1]; } APPVERSION; // Some code APPVERSION AppVersions; // At this point AppVersions structure is initialized properly. string wVersion; wVersion = AppVersions.wVersion; // Error // Error 1 error C2668: 'std::to_string' : ambiguous call to overloaded function ...
boost:: IO service как гарантировать последовательность выполнения обработчика
У меня есть пул потоков с boost::io_service сверху. Я использую его для различных задач, связанных с процессором в целом приложении. Для некоторых задач я должен гарантировать, что задачи будут выполняться в указанном порядке (декодирование видеопотока). Использование io_service::strand гарантирует, что задачи не будут выполняться в данный момент, но у него нет никаких гарантий относительно порядка выполнения. Другими словами, задача №5 может быть выполнена до выполнения задачи №4. Существует ли ...
Как создать новое значение и назначить частному уникальному ptr в конструкторе класса?
Как создать новый и присвоить значение частному unique_ptr в конструкторе класса? Tyvm:^) Keith Мои лучшие усилия: #include <iostream> #include <memory> class A { public: A() {}; A(int); void print(); private: std::unique_ptr<int> int_ptr_; }; A::A(int a) { int_ptr_ = new int(a); } void A::print() { std::cout << *int_ptr_ << std::endl; } int main() { A a(10); a.print(); std::cout << std::endl; } Результат компилятора: ...