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

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

С++ сравнивает строки до "%" char

Я хотел бы реализовать сравнение строк в С++, сравнивая строки со знаком "%". Я мог бы сделать это вот так: std::equal(str1.begin(), std::find(str1.begin(), str1.end(), L'%'), str2.begin()); Так как я делаю это в цикле по м...
задан 05 дек. '14 в 21:44
2
ответов

Использование typeid для обработки различных типов

Я пытаюсь использовать boost:: any, чтобы инкапсулировать возвращаемые значения sqlite. Затем я попытался написать цикл для их печати. ​​ Моя первая мысль заключалась в том, чтобы сделать что-то вроде: for(boost::any field: row) { switch(field.ty...
задан 09 дек. '14 в 1:59
2
ответов

Как заставить компилятор выбрать статический массив версии шаблона над указателем?

Я пытаюсь сделать что-то близкое к этому: template<typename TChar, size_t TSize> inline size_t StringLength(TChar(&)[TSize]) { return TSize - 1; } template<typename TChar> inline size_t StringLength(const TChar* value) { ret...
задан 09 дек. '14 в 12:56
2
ответов

Как выполнить std:: mutex:: lock до возврата функции

Я хочу вернуть std::vector. Этот std::vector может быть доступен из других потоков (чтение и запись). Как я могу разблокировать мой std::mutex сразу после завершения функции? Например, например: // Value.cpp std::vector<int> GetValue() { s...
задан 09 дек. '14 в 19:43
3
ответов

Вложенный поиск странных функций: окружающие функции класса скрывают глобальные функции

У меня есть следующий упрощенный код namespace Namespace { int foo() { return 1; } class Class { public: int foo() const { return 2; } class Nested { public: Nested() { cout << foo() << endl; ...
задан 10 дек. '14 в 16:30
1
ответ

возможная гонка данных с использованием packaged_task и потоков

Недавно я провел valgrind --tool=helgrind в своем проекте и получил предупреждение "возможная гонка данных", о которой я думал. Однако даже эта простая тестовая программа приводит к этому сообщению: #include <iostream> #include <thread>...
задан 11 дек. '14 в 16:32
1
ответ

С++ запутанный общий указатель

Я нашел код ниже в разделе "Язык программирования С++, четвертое издание", глава 17.5.1.3 struct S2 { shared_ptr<int> p; }; S2 x {new int{0}}; void f() { S2 y {x}; // ‘‘copy’’ x ∗y.p = 1; // change y...
задан 12 дек. '14 в 1:01
3
ответов

Undef typedef в С++?

Я работаю над огромным проектом, который имеет один файл A.h, код которого имеет строку typedef unsigned __int16 Elf64_Half; Кроме того, поскольку я строю на Linux и использую функцию dlinfo, я должен включить файл link.h в свой проект. И здесь ...
задан 12 дек. '14 в 4:43
1
ответ

Почему эти векторы не равны?

Я создал два вектора и наполнил другой push_back, а другой с индексами. Я бы ожидал, что они будут равны, но они не будут. Может кто-нибудь объяснить мне, почему это? #include <vector> #include <iostream> using namespace std; int main(...
задан 14 дек. '14 в 21:05
1
ответ

Ошибка: использование удаленной функции 'std:: thread:: thread (const std:: thread &)'

Код ниже компилируется и работает как ожидалось. Структура (класс) A происходит от std::thread и расширяется с помощью int больше. Код main создает некоторые потоки и после этого ждет завершения. Проблема заключается в том, что, хотя код компилируе...
задан 14 дек. '14 в 23:37
1
ответ

Перенос сигнатуры метода в качестве параметра шаблона в класс

Я хотел бы создать интерфейс шаблонов для классов обработки данных в моих проектах. Я могу написать что-то вроде этого: template <class T> class DataHandler { public: void Process(const& T) = 0; }; Тогда, предположим, я опре...
задан 01 марта '10 в 15:47
1
ответ

"В настоящий момент точка останова не будет удалена", и я не могу добавить файл .pdb

У меня есть решение с одним проектом в Visual Studio 2013 (Visual С++). Но когда я построю его в режиме debug, тогда запустите его в режиме debug, я получаю: В настоящий момент точка останова не будет удалена. Никакие символы не загружены для ...
задан 15 дек. '14 в 14:42
3
ответов

Практическое использование того факта, что оператор приращения префикса С++ возвращает значение lvalue

Я только что узнал, что результатом оператора приращения префикса в С++ является lvalue. Бывают случаи, когда это поведение помогает программисту быть более эффективным, но я не мог придумать ни одного. Каковы некоторые идиоматические применения этог...
задан 15 дек. '14 в 18:03
2
ответов

Как создать псевдоним для указателя функции noexcept?

Я хотел бы сделать это: using function_type = void (*)(void*)noexcept; Но я получаю сообщение об ошибке: "Спецификации исключений не допускаются в псевдонимах типов". (clang в версии 6.1 Xcode) Есть ли обходной путь для создания псевдонима с noex...
задан 15 дек. '14 в 20:23
1
ответ

Почему я не могу вернуть ссылку на упакованное поле?

Я использую g++ для компиляции кода с упакованными полями. Тем не менее, я получаю сообщение об ошибке при попытке вернуть ссылку на упакованное поле. Пример: struct __attribute__((packed)) Foo { int* ptr; uint16_t foo; int*& getPtr(){...
задан 15 дек. '14 в 22:17