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

Прерывание потока C++0x
В соответствии с окончательным проектом C++0x невозможно запросить завершение потока. Тем не менее, при необходимости нам нужно реализовать решение «сделай сам». С другой стороны, boost::thread предоставляет механизм безопасного прерывания...
34657 просмотров
schedule 08.10.2023

Разрешены ли кортежи кортежей?
В настоящее время я работаю над классом с множеством шаблонов, и возможность создавать кортежи кортежей значительно упростит задачу. Но я попробовал этот простой код в MSVC ++ 2010: #include <tuple> void main() { auto x =...
1154 просмотров
schedule 15.03.2024

Как генерировать случайные числа в С++, используя элементы заголовка ‹random›?
Я научился программировать на C# и начал изучать C++. Я использую интегрированную среду разработки Visual Studio 2010. Я пытаюсь генерировать случайные числа с классами распределения, доступными в <random> . Например, я попытался сделать...
5384 просмотров
schedule 10.10.2023

Как использовать лямбда-выражение в качестве параметра шаблона?
Как использовать лямбда-выражение в качестве параметра шаблона? Например. как класс сравнения, инициализирующий std :: set. Следующее решение должно работать, поскольку лямбда-выражение просто создает анонимную структуру, которая должна подходить...
19128 просмотров
schedule 18.11.2023

Заключенный в фигурные скобки конструктор списка инициализаторов
У меня есть класс Phenotype со следующим конструктором: Phenotype(uint8 init[NUM_ITEMS]); Я могу создать такой фенотип: uint8 data[] = {0,0,0,0,0}; Phenotype p(data); Но я получаю сообщение об ошибке, когда пытаюсь создать такой:...
79635 просмотров
schedule 10.07.2022

Введите безопасные (r) битовые флаги в С++?
Пересматривая старый код на C++, я наткнулся на несколько битовых флагов , определенных как перечисления. enum FooFlags { FooFlag1 = 1 << 0, FooFlag2 = 1 << 1, FooFlag3 = 1 << 2 // etc... }; Это не редкость,...
5574 просмотров
schedule 05.12.2023

Попала ли `#pragma once` в C ++ 0x?
Название говорит само за себя. #pragma once были стандартизированы для C ++ 0x? Я не знаю компилятора, который бы не реализовал его, почти всегда с той же семантикой и именем.
2947 просмотров
schedule 28.08.2022

Делаем своп быстрее, проще в использовании и безопасным для исключений
Я не мог спать прошлой ночью и начал думать о std::swap . Вот знакомая версия C++98: template <typename T> void swap(T& a, T& b) { T c(a); a = b; b = c; } Если определяемый пользователем класс Foo использует...
2421 просмотров
schedule 17.04.2024

Неопределенное поведение с замыканием C++0x: II
Я нахожу использование замыкания C++0x озадачивающим. Мой первоначальный отчет и последующий вызвали больше путаницы, чем объяснения. Ниже я покажу вам неприятные примеры и надеюсь выяснить, почему в коде возникает неопределенное поведение....
271 просмотров
schedule 31.03.2024

Почему std::pow(double, int) был удален из C++11?
Изучая Эффективный способ вычисления p^q (возведение в степень), где q — целое число , и рассматривая C++98 и C Стандарты ++11 Я заметил, что, по-видимому, перегрузка std::pow(double, int) была удалена в C++11. В C++98 26.5/6 он имеет подпись...
12561 просмотров
schedule 25.07.2022

Смешивание для каждого и лямбда-выражений в С++
Я хотел немного поиграть с лямбда-выражениями и для каждого (цикл for на основе диапазона, а не STL for_each) в C++0x. Итак, я пошел в вики и попытался переписать примеры из вики, используя лямбда-выражения: std::vector<int> some_list;...
203 просмотров
schedule 02.02.2024

Вариативный шаблон шаблона
Я пытаюсь создать базовый класс, который является оболочкой вокруг std :: array, которая перегружает кучу общих арифметических операторов. Конечный результат будет похож на std :: valarray, но со статическим размером. Я делаю это, потому что создаю...
687 просмотров
schedule 14.10.2023

Извлечь пакет параметров вариативного шаблона и использовать его в другом вариационном шаблоне в мета-функции свойств типа?
Я хочу определить, является ли какой-либо шаблон вариативного класса базой для другого класса. Обычно я бы использовал std :: is_base_of, но я не думаю, что мой вариант использования подходит, и я не уверен, что в std или boost уже есть что-то, чтобы...
1415 просмотров

Нужен ли виртуальный деструктор для вашего интерфейса, если вы всегда храните его в shared_ptr?
Поскольку boost::/std::shared_ptr имеет преимущество удаления типа удаления, вы можете делать такие приятные вещи, как #include <memory> typedef std::shared_ptr<void> gc_ptr; int main(){ gc_ptr p1 = new int(42); gc_ptr p2 = new...
1200 просмотров

Черта типа для подвижных типов?
Я пытаюсь написать шаблон, который ведет себя одним образом, если у T есть конструктор перемещения, и другим, если у T его нет. Я пытался найти черту типа, которая могла бы идентифицировать это, но мне не повезло, и мои попытки написать собственную...
5881 просмотров
schedule 02.10.2022

Предопределенный макрос C++11
Существуют ли какие-либо предопределенные макросы для C++, чтобы код мог идентифицировать стандарт? например В настоящее время большинство компиляторов помещает «массив» в папку «tr1», но для С++ 11 он будет частью STL. Так что в настоящее время...
15225 просмотров
schedule 17.10.2023

Как изменить каждый элемент пакета параметров и создать из них кортеж?
У меня возникла проблема с шаблоном функции с переменным числом аргументов. Мне нужно проверить каждый элемент пакета параметров, упаковать элемент, затем поместить все упакованные элементы в кортеж и вернуть его. Вот общая идея того, что я хотел бы...
948 просмотров

Что это за сообщение об ошибке о неявно удаленных виртуальных деструкторах?
Я только что обновил GCC с (кажется) 4.5.6 до 4.6.1, под Windows, MinGW. Внезапно мой базовый класс NonInstantiable (от которого вы наследуете с общедоступным виртуальным, чтобы предотвратить создание экземпляра) отказывается работать со следующими и...
14870 просмотров
schedule 28.12.2023

Как специализировать std :: hash ‹Key› :: operator () для пользовательского типа в неупорядоченных контейнерах?
Для поддержки определяемых пользователем типов ключей в std::unordered_set<Key> и std::unordered_map<Key, Value> необходимо предоставить operator==(Key, Key) и хеш-функтор: struct X { int id; /* ... */ }; bool operator==(X a, X...
53610 просмотров
schedule 02.12.2023

Можно ли преобразовать значения перечисления в С++ 11 без макросов?
Я знаю, что можно написать макрос "register", который будет отображать их значения в их строковые представления. Однако есть ли в C++11 какая-то новая магия, позволяющая обойтись без макросов и каких-либо регистрационных шаблонов? Чтобы было...
1974 просмотров
schedule 30.01.2024