Вопросы по теме '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
Выражения без побочных эффектов в C++
Видите ли, чего я не понимаю, почему такие программы, как следующие, должны быть законными?
int main()
{
static const int i = 0;
i < i > i;
}
Я имею в виду, конечно, что ни у кого на самом деле нет текущих программ, в которых...
1878 просмотров
schedule
13.05.2024
Введите безопасные (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 просмотров
schedule
30.08.2022
Нужен ли виртуальный деструктор для вашего интерфейса, если вы всегда храните его в 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 просмотров
schedule
24.10.2023
Черта типа для подвижных типов?
Я пытаюсь написать шаблон, который ведет себя одним образом, если у T есть конструктор перемещения, и другим, если у T его нет. Я пытался найти черту типа, которая могла бы идентифицировать это, но мне не повезло, и мои попытки написать собственную...
5881 просмотров
schedule
02.10.2022
Предопределенный макрос C++11
Существуют ли какие-либо предопределенные макросы для C++, чтобы код мог идентифицировать стандарт?
например В настоящее время большинство компиляторов помещает «массив» в папку «tr1», но для С++ 11 он будет частью STL. Так что в настоящее время...
15225 просмотров
schedule
17.10.2023
Как изменить каждый элемент пакета параметров и создать из них кортеж?
У меня возникла проблема с шаблоном функции с переменным числом аргументов. Мне нужно проверить каждый элемент пакета параметров, упаковать элемент, затем поместить все упакованные элементы в кортеж и вернуть его. Вот общая идея того, что я хотел бы...
948 просмотров
schedule
13.07.2022
Что это за сообщение об ошибке о неявно удаленных виртуальных деструкторах?
Я только что обновил 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