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

Можно ли использовать шаблоны лямбда-функций?
В C ++ 11 есть способ создать шаблон лямбда-функции? Или он слишком специфичен для шаблонов? Я понимаю, что вместо этого я могу определить классический шаблонный класс / функтор, но вопрос больше похож: позволяет ли язык создавать шаблоны...
115521 просмотров
schedule 02.05.2024

istream_iterator пытается проанализировать недопустимые данные
Привет, я надеялся, что кто-то поможет понять это поведение приведенного ниже кода. #include <iostream> #include <algorithm> #include <string> #include <limits> #include <fstream> #include <iterator> #include...
259 просмотров
schedule 20.04.2024

карта, лямбда, remove_if
Итак, у меня проблема с алгоритмом std::map, lambda и stl (remove_if). На самом деле тот же код с std::list или std::vector работает хорошо. Мой тестовый пример: #include <map> #include <iostream> #include <algorithm> struct...
11927 просмотров
schedule 14.03.2024

можно ли установить значение по умолчанию для std::tr1::tuple?
(я использую Visual C++ 2010) предположим, что я определил такой кортеж: typedef std::tr1::tuple< int //i want to set its default value to 9 , double //i want to set its default value to 3.3 , int //i want to set its default value to 2...
1389 просмотров
schedule 26.03.2024

Кортеж произвольного, но известного во время компиляции количества типов
Скажем, у меня есть тип, который параметризован другим интегральным типом POD: template< size_t N > struct MyFoo { /* ... */ }; С ним можно иметь кортеж из них: typedef std::tuple< MyFoo< 1 >, MyFoo< 2 >, MyFoo< 3...
173 просмотров
schedule 02.05.2024

Вычисляется ли выражение присваивания С++ 11 справа налево?
Порядок вычисления выражения всегда был источником неопределенного поведения в C++. В стандарте С++ 11 наконец указано, каким должен быть порядок оценки? Теперь мы знаем значения var1 и var2 следующего выражения: int var1 =10, var2=20;...
1494 просмотров

деструктор shared_ptr, копия и неполный тип
У меня есть заголовочный файл foo.h , подобный этому (несвязанные вещи опущены): #pragma once #include <memory> class Bar; struct Foo { std::shared_ptr<Bar> getBar(); std::shared_ptr<const Bar> getBar() const {...
1469 просмотров
schedule 30.04.2024

Эффективность виртуальной функции и «финальное» ключевое слово
Рассмотрим программу, в которой есть класс Foo , содержащий функцию Foo::fn , объявленную следующим образом: virtual void fn(); и подкласс Foo под названием Bar . Будет ли объявление Bar::fn таким: virtual void fn() override...
1216 просмотров
schedule 31.03.2024

Инициализация члена статического шаблона класса
У меня возникла проблема при попытке инициализировать статические члены шаблона статического класса. По сути, я думал, что этот подход будет полезен для: у меня есть много объектов, которые, конечно, все одного и того же базового типа, но они имеют...
110 просмотров
schedule 23.03.2024

Является ли перегрузка оператора сложения ссылкой на rvalue в качестве его левого операнда хорошей практикой?
Предполагая, что str является классом для хранения строковых значений, он перегрузит оператор сложения, чтобы поддерживать конкатенацию строк. Нравится: str operator+(const str &a,const str &b); Но проблема в том, что если у нас...
576 просмотров

Атомика C11 и C ++ 11: семантика получения-выпуска и барьеры памяти
Я использую атомику C11 * для управления перечислением состояний между несколькими потоками. Код выглядит следующим образом: static _Atomic State state; void setToFoo(void) { atomic_store_explicit(&state, STATE_FOO,...
773 просмотров
schedule 13.05.2024

Шаблоны параметров без типов. Почему глобальный и эталонный?
template<typename Body> Body solve(Body a, Body b){ Body zero(0); return zero; } template<typename Body, Body& zero> Body solve(Body a, Body b){ return zero; } complex<double> zero(0); int main() {...
62 просмотров
schedule 12.05.2024

Использование fstream для чтения из двоичного файла и сохранения результатов в векторе
Я работаю над проектом для своего класса CS202. У меня есть предоставленный двоичный файл неизвестного размера с именем data.dat , и мне нужно прочитать целые числа (которые я не знаю заранее) из файла и сохранить их в векторе правильного размера....
357 просмотров
schedule 17.03.2024

operator›› на связанном кортеже с std::ignore
Я наткнулся на следующую проблему при разработке «общего» читателя: Следующий код работает отлично (вам нужна поддержка С++ 1z для компиляции, поскольку он использует constexpr if, но с небольшими изменениями он также должен компилироваться с С++...
89 просмотров
schedule 13.03.2024

Понимание оптимизированной реализации declval
Глядя на исходный код libstdc++, я нашел следующую declval реализацию: template<typename _Tp, typename _Up = _Tp&&> _Up __declval(int); // (1) template<typename _Tp> _Tp __declval(long); // (2) template<typename...
521 просмотров