Вопросы по теме 'c++20'
Использование параметра шаблона в общей лямбда-выражении
GCC допускает следующий синтаксис в качестве расширения:
// a functional object that will add two like-type objects
auto add = [] <typename T> (T a, T b) { return a + b; };
В n3418 предложение 2012 г. по общие лямбда-выражения, мы...
3086 просмотров
schedule
13.06.2023
enum to string в современных C ++ 11 / C ++ 14 / C ++ 17 и будущих C ++ 20
В отличие от всех других подобных вопросов, этот вопрос касается использования новых функций C ++.
2008 c Есть ли простой способ преобразовать перечисление C ++ в строку?
2008 c Простой способ использовать переменные перечислимого типа...
234157 просмотров
schedule
11.07.2023
При использовании модулей С++ есть ли причина отделять объявления функций (файлы .hpp) от их определений (файлы .cpp)?
Я привык писать код без модулей, где файлы заголовков содержат объявления функций, например:
// foo.h
class Foo
{
void bar();
};
и соответствующий файл .cpp содержит определение:
// foo.cpp
#include "foo.h"
void Foo::bar()
{
//...
3270 просмотров
schedule
11.05.2024
Что такое промежуток и когда мне его использовать?
Недавно я получил предложения использовать span<T> в моем коде или видел здесь на сайте несколько ответов, которые используют span - предположительно, какой-то контейнер. Но - я не могу найти ничего подобного в стандартной библиотеке C ++...
83275 просмотров
schedule
23.05.2022
Может ли пространство имен (быть/удовлетворять) концепции?
Я знаю, что предложение C++ Concepts предназначено, возможно, среди прочего, для наложения ограничений на параметры шаблона (скажем, на «последовательность») в текущей ситуации, в которой все, что удается скомпилировать, достаточно хорошо (и сообщения...
113 просмотров
schedule
16.06.2023
Цикл понятий C++
Я хотел бы попросить компилятор проверить, содержит ли кортеж только «метатипы».
Кстати, я совершенно новичок в концепциях С++.
template < typename T >
struct Type {
using type = T;
};
//! A type can be easily check with a small...
410 просмотров
schedule
09.06.2022
С++ 17, устаревшие функции в стандартной библиотеке «памяти»?
Я только что понял, что некоторые функции стандартной библиотеки динамического управления памятью были устарело в C++17 . Например, get_temporary_buffer :
template< class T >
std::pair< T*, std::ptrdiff_t > get_temporary_buffer(...
687 просмотров
schedule
05.08.2022
Стоит ли основывать битовый контейнер, не являющийся владельцем, на std::vector‹bool›? станд::промежуток?
В нескольких моих проектах мне все чаще приходилось иметь дело с непрерывными последовательностями битов в памяти - эффективно (*). До сих пор я написал кучу встраиваемых автономных функций, основанных на выборе типа «контейнера битов» (например,...
211 просмотров
schedule
27.06.2023
Как я могу заполнить chrono::year текущим годом?
Итак, из этого вопроса я понимаю, что целое число, используемое при построении chrono::year соответствует Anno Domini происхождение 0.
Итак, мой вопрос: что, если я хочу получить текущий chrono::year . Есть ли функция для этого? Я,...
131 просмотров
schedule
01.02.2024
Что такое объекты точек настройки и как их использовать?
В последнем черновике стандарта C++ представлены так называемые «объекты точки настройки» ( [customization .point.object] ), которые широко используются библиотекой диапазонов.
Кажется, я понимаю, что они предоставляют способ написания...
4543 просмотров
schedule
26.07.2023
Шаблон C++20 ‹auto› с типом пользователя приводит к несоответствию типа T/const T в GCC 9
Я пытаюсь использовать нестандартный шаблон с пользовательским типом.
struct T {};
template <auto value> struct U {};
template <auto value>
void f (U <value>) {}
int main()
{
constexpr T t;
f (U<1>{}); //...
236 просмотров
schedule
26.12.2022
Конструктор преобразования варианта С++ с bool
В cppreference (4) конструктор преобразования описывается следующим образом:
Преобразующий конструктор. Создает вариант, содержащий альтернативный тип T_j , который был бы выбран разрешением перегрузки для выражения...
459 просмотров
schedule
22.07.2022
Сопрограммы C ++ 20: реализация ожидаемого будущего
Поскольку Coroutines TS был принят в C ++ 20 на встрече ISO в Kona, я начал немного поиграться с ними для себя. Clang уже имеет приличную поддержку сопрограмм, но реализация поддержки библиотеки все еще отсутствует. В частности, еще не реализованы...
2172 просмотров
schedule
01.01.2023
Почему std::move не [[nodiscard]] в С++ 20?
Недавно я прочитал о [[nodiscard]] в C++17, и, насколько я понимаю, это новая функция (дизайн по контракту?), которая заставляет вас использовать возвращаемое значение. Это имеет смысл для спорных функций, таких как std::launder (nodiscard...
2494 просмотров
schedule
04.07.2023
Будет ли законно, чтобы std::set был специализирован для (u)int8 и символов с использованием набора битов и общего статического массива?
В основном это вопрос языкового юриста, я сомневаюсь, что большинство реализаций будут беспокоить, тем более что это, вероятно, увеличит время компиляции для каждого пользователя.
При этом: если какая-то реализация std::set была реализована с...
338 просмотров
schedule
08.01.2023
Разветвления C ++ 20, требующие дополнения до двух
C ++ 20 будет указывать, что подписанные интегральные типы должны используйте дополнение до двух . Это не кажется большим изменением, учитывая, что (практически?) Каждая реализация в настоящее время использует два дополнения.
Но мне было...
1550 просмотров
schedule
29.11.2022
С++ 20 'char8_t' такой же, как наш старый 'char'?
В документации справочника CPP,
Я заметил для char
Типы символов достаточно велики, чтобы представлять любую восьмибитную кодовую единицу UTF-8 (начиная с C++14).
и для char8_t
тип для представления символов UTF-8, должен...
9111 просмотров
schedule
01.09.2022
Невозможно прочитать char8_t из basic_stringstream‹char8_t›
Я просто пытаюсь stringstream в UTF-8:
#include<iostream>
#include<string>
#include<sstream>
int main()
{
std::basic_stringstream<char8_t> ss(u8"hello");
char8_t c;
std::cout << (ss.rdstate() &...
292 просмотров
schedule
02.07.2022
Почему возвращаемый тип заполнителя не разрешен для сопрограмм?
Согласно спецификации сопрограмм C++20 :
Функция, объявленная с возвращаемым типом, который использует тип заполнителя, не должна быть сопрограммой.
Почему в таком случае нельзя использовать заполнитель?
281 просмотров
schedule
10.05.2023
Ковариантные возвращаемые типы виртуального constexpr
Насколько я понимаю из этого предложения C++20 снимает ограничения на использование виртуальных функций в контекстах constexpr. Само изменение простое, слова "не должно быть виртуальным" убраны. Обоснование этого, по-видимому, заключается в том,...
95 просмотров
schedule
04.11.2022