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

Реализация атомарного шаблона C ++ 0x
Я знаю, что аналогичный шаблон выходит в Intel TBB, кроме того, я не могу найти никакой реализации в Google или в библиотеке Boost.
6516 просмотров
schedule 02.05.2024

Пример списка инициализаторов C++0x
Я хотел бы посмотреть, как этот пример существующего кода сможет использовать функцию списка инициализаторов C++0x. Пример0: #include <vector> #include <string> struct Ask { std::string prompt; Ask(std::string...
10847 просмотров
schedule 31.12.2023

Можно ли эмулировать nullptr в gcc?
Я видел, что nullptr был реализован в Visual Studio 2010. Мне нравится эта концепция, и я хочу начать использовать ее как можно скорее; однако GCC пока не поддерживает его. Мой код должен работать на обоих (но не должен компилироваться с другими...
19358 просмотров
schedule 24.10.2022

Тернарный оператор
Почему компилятор не может специализировать эту функцию и есть ли способ заставить его это сделать? Я получаю сообщение об ошибке: Ошибка 1 error C2893: Не удалось специализировать шаблон функции "неизвестный тип" Тернарный::check(bool,Left,Right)'...
1041 просмотров
schedule 23.09.2022

Может ли кто-нибудь объяснить ссылки на rvalue в отношении исключений?
Допустим, у меня есть этот класс исключений: struct MyException : public std::exception { MyException(const std::exception &exc) : std::exception(exc) { cout << "lval\n"; } MyException(std::exception...
1310 просмотров

c++0x: перегрузка по лямбда-арности
Я пытаюсь создать функцию, которую можно вызвать с помощью лямбды, которая принимает 0, 1 или 2 аргумента. Поскольку мне нужно, чтобы код работал как на g++ 4.5, так и на vs2010 (который не поддерживает вариативные шаблоны или лямбда-преобразования в...
2469 просмотров
schedule 21.09.2022

Поддержка std::atomic в g++ 4.4.3
Я использую g++ версии 4.4.3 в ОС Ubuntu. Согласно этой матрице здесь предполагается также поддержка std::atomic . Каждый раз, когда я использую #include <atomic> компилятор выдает мне ошибку и говорит error: atomic: No such file...
5407 просмотров
schedule 26.10.2022

Область действия лямбда-выражения
#include "stdafx.h" #include <iostream> using namespace std; template<class Type> struct X { void run()const {//Why on earth this doesn't work? [&]() { Type::alloc(); }; } void...
1038 просмотров
schedule 25.01.2024

Сохранение указателя функции в std::function
Я пытаюсь написать оболочку С++ 0x вокруг dlopen()/dlsym() для динамической загрузки функций из общих объектов: class DynamicLoader { public: DynamicLoader(std::string const& filename); template<class Signature>...
12033 просмотров

static_assert для initializer_list::size()
Почему std::initializer_list<_E>::size не допускается в static_assert , хотя он объявлен как constexpr в моей libstdc++ (v. 4.6)? Например, следующий код: template<class T, int Length> class Point { public:...
12827 просмотров
schedule 14.11.2023

Является ли стандартная библиотека С++ частью языка С++?
Является ли стандартная библиотека C++ частью языка C++? ( обратите внимание на "язык", а не на "стандарт"; конечно, оба являются частью стандарта ). Если да, то почему? Если нет, то почему? Ответ на этот вопрос может различаться в C++98,...
759 просмотров
schedule 12.10.2022

Нельзя использовать не, или, или плюс в качестве идентификатора?
Я попытался скомпилировать это: enum class conditional_operator { plus, or, not }; Но, по-видимому, GCC (4.6) считает их особенными, хотя я не могу найти стандарт, в котором говорится, что это так (ни C++0x n3290, ни C99 n2794). Я компилирую...
369 просмотров
schedule 25.11.2022

Странная ошибка C2275, незаконное использование этого типа в качестве выражения с шаблоном функции-члена и лямбда-выражениями
Сводка По какой-то причине мой шаблон функции-члена, который вызывает лямбда-функцию, не компилируется с ошибкой C2275... незаконное использование этого типа в качестве выражения , но когда функция перемещена в свободную функцию он...
7350 просмотров
schedule 05.12.2023

Получение имени типа шаблонного типа без определения класса
Я пытаюсь написать оболочку шаблона, которая работает с типом smart_ptr и в некоторых случаях должна вызывать исключение. В этом случае я хотел бы включить имя типа, который класс обертывает. Поскольку я работаю с интеллектуальными указателями,...
110 просмотров
schedule 05.11.2023

std::function и std::bind: что это такое и когда их следует использовать?
Я знаю, что такое функторы и когда их использовать с std алгоритмами, но я не понял, что Страуструп говорит о них в Часто задаваемые вопросы по C++11 . Кто-нибудь может объяснить, что такое std::bind и std::function , когда их следует...
101393 просмотров
schedule 02.12.2023

Лямбда-выражения: проект n3290
Фраза из черновика ISO n3290: лямбда-выражения: раздел 5.1.2, параграф 6: "The closure type for a lambda-expression with no lambda-capture has a public non-virtual non-explicit const conversion function to pointer to function...
234 просмотров
schedule 11.01.2024

Объединение хранилищ / загрузок последовательных атомарных переменных
Ссылаясь на (слегка устаревший) документ Автор Ганс Бём, в разделе «Атомные операции». В нем упоминается, что модель памяти (предложенная в то время) не помешает оптимизирующему компилятору объединить последовательность загрузок или сохранений...
368 просмотров
schedule 08.12.2023

Наследование шаблонных методов
У меня есть класс, подобный следующему: class SomeClass { public: template<typename... Args> void doSomething(Args && ... args); //... other methods etc. }; Однако на самом деле я хочу иметь два...
10223 просмотров
schedule 15.04.2024

Имеет ли смысл использовать идиому перемещения и замены для подвижного и некопируемого класса?
Если у меня есть класс, например class Foo{ public: Foo(){...} Foo(Foo && rhs){...} operator=(Foo rhs){ swap(*this, rhs);} void swap(Foo &rhs); private: Foo(const Foo&); // snip: swap code }; void swap(Foo&...
2001 просмотров

Какую битовую хеш-функцию использует unordered_map?
Какой битовый хеш unordered_map из C++0x использует по умолчанию? Функция std::hash возвращает size_t . Означает ли это, что unordered_map использует 16-битную хеш-функцию?
308 просмотров
schedule 09.03.2024