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

Статус диапазонов для С++ 1z?
В комитете C++ есть группа по изучению диапазонов: но я не следил за историей этой исследовательской группы и не уверен в том, какие результаты ожидаются для C++1z (более того, я не использую boost.range, поэтому у меня нет четкого...
1664 просмотров
schedule 28.09.2022

Почему std::allocator потерял типы/функции-члены в С++ 17?
Глядя на std::allocator , я вижу, что члены: value_type , pointer , const_pointer , reference , const_reference , size_type , difference_type и rebind устарели. Распределители также больше не будут иметь членов: address , max_size ,...
2103 просмотров
schedule 30.11.2022

Constexpr лямбда по умолчанию?
Согласно n4487 и другим С++17 ссылки, появится новый спецификатор лямбда-функции — constexpr , который, если он присутствует, «явно указывает, что оператор вызова функции является функцией constexpr ». . Я понимаю мотивацию константных...
685 просмотров
schedule 22.10.2023

Понимание std :: hardware_destructive_interference_size и std :: hardware_constructive_interference_size
В C ++ 17 добавлены std::hardware_destructive_interference_size и std::hardware_constructive_interference_size . Во-первых, я подумал, что это просто переносимый способ получить размер строки кэша L1, но это чрезмерное упрощение. Вопросы:...
7474 просмотров

Почему структурированные привязки С++ 17 не используют {}?
Я нашел исходное предложение для структурированных привязок *C++ здесь . Он предлагает способ легко связать несколько возвращаемых значений, т.е.: auto {a, b} = minmax(data); Но теперь я вижу, что все указывают на синтаксис предложения...
6201 просмотров
schedule 02.11.2022

Почему GCC отклоняет std:: optional для ссылок?
std::optional<int&> xx; просто не компилируется для последнего моментального снимка gcc-7.0.0. Включает ли стандарт С++ 17 std::optional для ссылок? А почему если нет? (Реализация с указателями в выделенной специализации, я думаю, не...
2486 просмотров
schedule 13.05.2024

Неопределенная ошибка ссылки для статического члена constexpr
Рассмотрим этот код: #include <vector> struct A { static constexpr int kDefaultValue = -1; std::vector<int> v; A(int n): v(n, A::kDefaultValue) {} }; int main() { A(10); return 0; } Не удается связать (llvm clang, gcc...
10273 просмотров
schedule 09.02.2024

Почему в C ++ 17 нет std :: future :: then?
boost::future имеет функцию-член: boost::future::then , а std::future не имеет std::future::then . В этой замечательной статье показано насколько полезным будет std::future::then . Почему в C ++ 17 нет std::future::then ? Это...
7838 просмотров

Как поддерживать агрегаты в STL или STL-подобной библиотеке
Как ввести поддержку агрегатной инициализации для их правильного построения в (например) контейнерах STL? Я имею в виду что-то вроде: struct A { int i; char c; }; std::list< A > l; // empty l.insert(std::memberwise, 1, '2'); // <=>...
104 просмотров
schedule 16.09.2022

SFINAE внутри аргумента std::enable_if
У меня есть разные типы view , каждый из которых имеет константу-член std::size_t View::dimension и тип члена typename View::value_type . Следующая проверка типа компиляции должна проверить, являются ли From и To представлениями (проверено...
446 просмотров
schedule 19.11.2022

Можно ли гарантировать, что функция constexpr вызывается не более одного раза во время компиляции?
Как следует из заголовка: возможно ли обеспечить вызов функции constexpr не более одного раза во время компиляции? Это явно невозможно, если функция не constepxr; Я мог бы написать функцию, которая будет вызываться всякий раз, когда я нажимаю...
511 просмотров
schedule 19.12.2023

Как использовать новые политики выполнения C++17?
Я читал документацию std::algorithm по адресу cppreference.com и я заметил тег C++17 на многих участках классных вещей, которыми я еще не пользовался. Больше всего мое внимание привлекли новые политики выполнения. Прочитав о них, я понял,...
16244 просмотров
schedule 16.04.2024

Как представить шаблонный тип с переменным числом аргументов на основе другой группы аргументов шаблона с переменным числом аргументов в современном С++?
Предположим, у меня есть следующая структура вариативного шаблона: template <class... T> struct Example {}; Теперь я хочу определить функцию шаблона: template<class... S> ??? f() { return Example<???> } где...
138 просмотров
schedule 10.03.2024

C++17 вариант‹любой› внутри класса
Следующий код компилируется хорошо: int main() { variant<any> var; var = 5; cout << any_cast<int>(get<any>(var)) << endl; return 0; } Но когда я пытаюсь поместить variant<any> в класс...
770 просмотров
schedule 06.03.2024

Ошибка реализации std::variant (Clang 4.0.1)
Вот мой основной тестовый код: #include <iostream> #include <variant> int main(int argc, char** argv) { std::variant<int> v{5}; std::cout << std::get<0>(v) << std::endl; } Когда я компилирую его с...
135 просмотров
schedule 22.05.2024

Конструктор на основе целочисленной константы
Поскольку _mm_extract_epi64() принимает в качестве параметра константу, которая должна быть известна во время компиляции, я пытаюсь реализовать конструктор с шаблоном целочисленной константы: union Packed64 { double _f64; float...
144 просмотров
schedule 10.04.2024

Как предоставить руководство по вычету для вложенного класса шаблона?
Согласно [ temp.deduct.guide/3 ]: (...) Руководство по дедукции должно быть объявлено в той же области, что и соответствующий шаблон класса, и для шаблона класса-члена с тем же доступом. (...) Но приведенный ниже пример, похоже, не...
1110 просмотров

Стандарт с ++: есть ли внутренняя связь переменных constexpr с областью имен?
Представьте, что у нас есть заголовок foo.h , содержащий следующее: #ifndef FOO_H_ #define FOO_H_ namespace foo { constexpr std::string_view kSomeString = "blah"; } #endif // FOO_H_ Гарантируется ли foo::kSomeString наличие внутренней...
3111 просмотров
schedule 18.03.2024

Как перечислить все переменные-члены класса/структуры в С++
Я работаю над каким-то простым отражением для структур С++, где я хочу рекурсивно перебирать все переменные-члены. Приведенный ниже код почти делает то, что я хочу, но мой компилятор соответствует требованиям: «рекурсивный тип или контекст...
1106 просмотров
schedule 07.06.2024

Почему inline требуется для статических встроенных переменных?
С++ 17 позволяет определять статические переменные-члены следующим образом: class X { public: static inline int i = 8; }; В чем причина требования спецификации inline ? Почему бы просто не позволить программистам писать static...
3374 просмотров
schedule 11.03.2024