Вопросы по теме 'c++17'
Как создать каталог в С++
я только что нашел небольшой фрагмент кода, который позволяет мне создать каталог с Windows API без использования system(). Единственная проблема в том, что я не могу создать каталог в подкаталоге. Например
#include<windows.h>
int...
52664 просмотров
schedule
18.08.2022
Что такое краткие циклы for на основе диапазона?
clang начал внедрять краткие циклы for на основе диапазона из n3994 . Часто при введении циклов for на основе диапазона мы видим код в форме for (auto & v : vector) , чтобы избежать ненужного копирования. Кажется, что n3994 предполагает, что...
2194 просмотров
schedule
19.04.2023
необязательный конструктор с initializer_list
Какова цель этого специального конструктора, принимающего список инициализаторов. Может ли кто-нибудь привести пример, когда это будет полезно?
template <class U, class... Args>
constexpr explicit optional(in_place_t,...
1704 просмотров
schedule
05.06.2023
Написание современного функционального интерфейса для создания заполненного контейнера
Когда я освоился в C++03, я изучил несколько подходов к написанию функции «дайте мне набор вещей». Но у каждого есть неудачи.
template< typename Container >
void make_collection( std::insert_iterator<Container> );
Это должно...
386 просмотров
schedule
18.06.2022
С++ 14 с использованием псевдонима для is_same::value
В этом вопросе используется is_same<uint64_t, decltype(val)>::value .
Я ожидал, что будет С++ 14 using alias : is_same_v , похожий на вспомогательные типы: conditional_t , enable_if_t и tuple_element_t , которые я использую в моем...
3190 просмотров
schedule
06.07.2023
Класс шаблона с недопустимыми функциями-членами
Законно ли в C++ создавать экземпляры шаблонов классов с классами, которые не работают с некоторыми из его функций-членов?
Например:
class A {
public:
void f() { }
};
class B {
};
template<typename T>
class Wrapper {
private:...
221 просмотров
schedule
23.09.2022
Будет ли стандартизирована идиоматическая защита/выход из области видимости?
Запуск лямбды при выходе из области видимости кажется такой простой вещью, что я ожидаю, что она будет стандартизирована. Такие вещи, как unique_ptr , лучше, когда они применимы, но я обнаружил, что существует бесконечный запас «одноразовых»...
3005 просмотров
schedule
02.06.2023
Реализация оператора less для массивов с использованием выражений свертки
Я играю с выражением fold в С++ 17 с последним clang++. Я попытался реализовать оператор меньшего размера для массива, используя это, которое я хочу использовать для строк фиксированного размера.
Вот куда я попал. Есть ли лучший способ сделать...
609 просмотров
schedule
03.02.2023
Поиск минимального элемента на основе преобразованного значения
Вот такая задача пришла мне из code review. Я хочу выбрать минимальное значение из набора на основе специального предиката сравнения. Как это:
struct Complex { ... };
float calcReduction(Complex elem);
Complex findMinValueWithPredicates(const...
2305 просмотров
schedule
21.05.2023
Почему вспомогательный помощник для идиомы «стереть-удалить» не предусмотрен стандартом?
Для удаления элементов из коллекции в STL требуется так часто используемый метод, что он стал идиомой: идиома стереть-удалить
Одним из наиболее распространенных применений этой идиомы является удаление элемента типа T из vector<T>...
697 просмотров
schedule
26.03.2023
конструктор производного класса не может быть constexpr, если базовый класс содержит член массива
Я хочу определить значения constexpr производного типа (SBar), используя конструктор, единственным аргументом которого является переменная базового класса (SFoo), которая просто используется для инициализации базы.
Это прекрасно работает, когда...
512 просмотров
schedule
02.02.2023
Допускаются ли в определениях понятий ошибки замены за пределами требуемого выражения?
Рассмотрим этот код:
#include <type_traits>
#include <iostream>
template <class T> concept bool C1 = std::is_same<T, int>::value;
template <class T> concept bool C2 =...
156 просмотров
schedule
11.04.2023
Есть ли короткий способ проверить, не содержит ли пакет параметров повторение типов?
Скажем, у меня есть структура шаблона:
template<typename... Args>
struct Foo {
static_assert(/*code*/);
//to do
}
Я хочу проверить в static_assert, являются ли типы в Args разными типами. Я знаю, как это сделать, используя...
70 просмотров
schedule
28.05.2022
Почему аргумент ссылки rvalue соответствует ссылке const в разрешении перегрузки?
Потенциально связанные статьи:
Разрешение перегрузки между объектом, ссылкой rvalue, ссылкой const
std::begin и R-значения
Предполагается, что для контейнера STL C , std::begin(C) и аналогичные функции доступа, включая std::data(C)...
728 просмотров
schedule
05.05.2022
Понятия и порядок декларирования
Я экспериментировал с облегченными концепциями в GCC из SVN. Я столкнулся с проблемой, которая, как я подозреваю, связана с моим непониманием, и я был бы признателен, если бы кто-нибудь мог указать мне правильное направление. Мой код:
#include...
324 просмотров
schedule
28.06.2023
Как предложение C ++ 17 по унифицированному синтаксису вызовов предназначено для обработки пространств имен?
Насколько мне известно, есть два пропсала для унифицированного синтаксиса вызовов для C ++ 17 (где второй называется синтаксисом унифицированного вызова).
Читая их, я не понимаю, как они собираются обрабатывать пространства имен.
Пример:...
2762 просмотров
schedule
23.01.2024
Проблема синтаксиса при заполнении массива выражением сгиба
Да, я могу использовать std::initializer_list . Да, еще проще, я могу сделать агрегатную инициализацию. Но как это работает? Кажется, я не могу сложить голову вокруг выражений сгиба С++ 17. Там не хватает примеров.
Вот что я придумал:...
1886 просмотров
schedule
05.09.2022
Встроенное использование явного конструктора не по умолчанию для объекта-члена
В С++ 11 (или будущем) есть какая-то простая вариация следующего, которая является законной?
class A
{
public:
std::vector<char> b(123); // declare a vector with 123 elements
};
Самое близкое, что я могу найти, немного неуклюже...
184 просмотров
schedule
18.12.2023
Как определить, не связаны ли два побочных эффекта с заданием?
Из §5.2.6 / 1 у нас есть (выделено мной) :
Значение постфиксного выражения ++ - это значение его операнда. [Примечание: полученное значение является копией исходного значения - конечное примечание] Операнд должен быть изменяемым lvalue....
292 просмотров
schedule
23.11.2022
Ассоциативность fold-выражений
N4191 предложил свернуть выражения на C++. Определение там было такое
(args + ...)
является левой складкой (т.е. (((a0 + a1) + a2) + ...) , и что
(... + args)
является правой стороной (т. е. (... + (a8 + (a9 + a10))) . Однако...
314 просмотров
schedule
13.10.2022