Вопросы по теме 'c++11'
Прерывание потока C++0x
В соответствии с окончательным проектом C++0x невозможно запросить завершение потока. Тем не менее, при необходимости нам нужно реализовать решение «сделай сам».
С другой стороны, boost::thread предоставляет механизм безопасного прерывания...
34657 просмотров
schedule
08.10.2023
Заполните контейнер параметрами шаблона
Я хочу заполнить параметры шаблона, переданные в вариативный шаблон, в массив фиксированной длины. Для этого я написал следующие шаблоны вспомогательных функций
template<typename ForwardIterator, typename T>
void fill(ForwardIterator i) {...
777 просмотров
schedule
05.06.2024
Разрешены ли кортежи кортежей?
В настоящее время я работаю над классом с множеством шаблонов, и возможность создавать кортежи кортежей значительно упростит задачу.
Но я попробовал этот простой код в 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
Почему нет присваивания / конструктора перемещения по умолчанию?
Я простой программист. Переменные-члены моего класса чаще всего состоят из POD-типов и STL-контейнеров. Из-за этого мне редко приходится писать операторы присваивания или конструкторы копирования, поскольку они реализованы по умолчанию.
Добавьте...
42391 просмотров
schedule
15.06.2024
С++0x | Почему std::atomic перегружает каждый метод классификатором volatile?
Следующий отрывок из текущего проекта показывает, что я имею в виду:
namespace std {
typedef struct atomic_bool {
bool is_lock_free() const volatile;
bool is_lock_free() const;
void store(bool, memory_order =...
1282 просмотров
schedule
30.05.2024
Делаем своп быстрее, проще в использовании и безопасным для исключений
Я не мог спать прошлой ночью и начал думать о 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
Виртуальный метод нельзя удалить в С++ 0x?
Сообщение об ошибке, кажется, немного вводит в заблуждение в сценарии, когда мы пытаемся delete использовать virtual метод.
prog.cpp:4:16: error: deleted function 'virtual void Test::foo()'
prog.cpp:8:2: error: used here
Код
struct...
318 просмотров
schedule
31.05.2024
Нужен ли виртуальный деструктор для вашего интерфейса, если вы всегда храните его в 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