Вопросы по теме 'c++17'
вспомогательная конструкция make_XYZ, разрешающая RVO и вывод типа, даже если XZY не имеет ограничения на копирование
ОБНОВЛЕНИЕ 1. В C ++ 17 добавлен вывод типов для конструкторов, что не означает, что бесплатная функция является второстепенным решением.
ОБНОВЛЕНИЕ 2: C ++ 17 добавил гарантированное исключение копии (копирование даже не происходит...
754 просмотров
schedule
01.03.2022
Что такое string_view?
string_view была предложена в рамках технического обслуживания по основам библиотеки C++( N3921 ) добавлен в C++17
Насколько я понимаю, это тип, который представляет собой некую строковую «концепцию», которая представляет собой представление...
63184 просмотров
schedule
26.06.2022
Почему компилятор разрешает доступ к массиву за пределами границ даже с индексом constexpr?
Например, если у нас есть std::array , и мы создаем экземпляр элемента, который выходит за границы, используя constexpr , компилятор не сообщит об ошибке:
constexpr int EvaluateSpecialArrayIndex(int a)
{ return a * sizeof(int); }
array<int,...
2063 просмотров
schedule
17.02.2023
С++ 1z, почему бы не удалить орграфы вместе с триграфами?
C++1z удалит триграфы. IBM резко выступила против этого ( здесь и здесь ), поэтому, похоже, есть аргументы в пользу обеих сторон удаления/не удаления.
Но раз принято решение убрать триграфы, то зачем оставлять орграфы? Я не вижу никаких причин...
2904 просмотров
schedule
09.09.2023
Возвращаемое значение нечленной перегрузки std::empty для массивов фиксированного размера
Документ [принятых] стандартов N4280 добавляет несколько новые функции, не являющиеся членами, будут включены в C++17.
Есть замечания, указывающие на правильные возвращаемые значения для каждой из новых функций, не являющихся членами, и, в...
75 просмотров
schedule
07.05.2022
Какие библиотеки boost обсуждаются для включения в C++17?
Для типичных потребностей программирования C++11 стал важной вехой — мы заменили 95% кода Boost стандартной библиотекой.
Но каково текущее состояние его библиотек , которые еще не включены в стандартную библиотеку?
Я начал задаваться вопросом...
3037 просмотров
schedule
03.11.2022
Clang и бинарные выражения — проклятие пустого пакета параметров
В частности, Clang 3.6.0, который в настоящее время размещается на Coliru.
Все эти фрагменты вызываются из:
int main() {
foo();
std::cout << "\n----\n";
foo(1, 2, 3);
}
Следующий код:
template <class... Args>...
1347 просмотров
schedule
10.03.2024
Является ли auto необязательным ключевым словом в диапазоне циклов for?
Я помню, как кто-то однажды сказал мне,
«нет необходимости в auto внутри циклов for на основе диапазона. Это не было бы двусмысленным в языке, если бы мы удалили его».
Верно ли это утверждение? Является ли следующий код допустимым...
862 просмотров
schedule
10.11.2022
замена std::binary_function
std::binary_function теперь устарела и будет удалена в c++17 . Я искал в разных публикациях, но не смог найти точного способа заменить его. Я хотел бы знать, как написать следующий код в c++11 .
template <class T>
inline T...
8063 просмотров
schedule
07.04.2024
Как я могу сделать код этого вариативного шаблона короче, используя возможности C++14 и C++1z?
Это фрагмент кода, который я собираюсь использовать, чтобы проверить, уникальны ли типы вариативных шаблонов:
template <typename...>
struct is_one_of;
template <typename F>
struct is_one_of<F> {
static constexpr bool value =...
483 просмотров
schedule
16.12.2022
msvc std::function не принимает общую лямбду с вложенной лямбдой
Следующее работает с gcc 5.2 и clang 3.7, но не работает с msvc 2015:
#include <functional>
int main()
{
auto const foo = [](auto&& i) {
auto const bar = []{ return 100; };
return bar();
};...
401 просмотров
schedule
06.08.2023
Почему перегрузка const&& as_const удалена?
В блоге о прогрессе C++17 я прочитал следующее:
P0007 предлагает шаблон вспомогательной функции as_const , который просто берет ссылку и возвращает ее как ссылку на const .
template <typename T> std::add_const_t<T>&...
589 просмотров
schedule
24.06.2022
Почему для концепции Sortable требуется полностью упорядоченный тип значения, а для std::sort требуется только меньше, чем сопоставимый?
В последнем документе о концепциях N3701 , есть следующий пример с алгоритмом sort :
template<typename Cont>
requires Sortable<Cont>()
void sort(Cont& cont)
где понятие Sortable определяется как...
1089 просмотров
schedule
20.01.2023
Работа с unique_ptr‹int[]›, vector‹int› и int[] в шаблонной функции
Скажем, у меня есть 3 переменные:
vector<int> vec(3);
int stat[3];
auto dyn = make_unique<int[]>(3);
Я могу инициализировать любой из них, если я знаю, что размер равен 3:
for(auto i = 0; i < 3; ++i) X[3] = i;
Где X...
59 просмотров
schedule
28.10.2023
эффективный способ вставить unique_ptr в карту без удаления указателя, если ключ уже существует
Легкий путь очевиден
std::map<int,std::unique_ptr<something>> mymap;
auto f = mymap.find(5);
std::unique_ptr<something> myptr;
if (f == mymap.end())
mymap.insert({5, std::move(myptr)});
Однако это выглядит не слишком...
4766 просмотров
schedule
30.08.2023
С++ 17 make_Optional constexpr-ness
На этой странице говорится, что функция make_optional в C++17 возвращает constexpr optional<...> . Я думаю (хотя могу ошибаться), для этого потребуется, чтобы optional<T> имел constexpr конструктор копирования или перемещения....
485 просмотров
schedule
16.03.2024
Могу ли я использовать функции доступа библиотек итераторов к нестандартным контейнерам?
В библиотеке iterator было представлено множество функций доступа по ходу C+. +11, С++ 14 и С++ 17:
begin / end
cbegin / cend
crbegin / crend
data
empty
rbegin / rend
size
Могу ли я использовать их в любом...
56 просмотров
schedule
13.07.2023
Используя файловую систему :: путь, как вы открываете файл кросс-платформенным способом?
Допустим, вы использовали новый код std::filesystem (или std::experimental::filesystem ) для поиска файла. У вас есть переменная path , содержащая полный путь к этой переменной.
Как открыть этот файл?
Это может звучать глупо, но примите во...
10397 просмотров
schedule
24.01.2024
преобразование структуры в/из std::tuple
Предполагая, что у меня есть struct и std::tuple с макетом одного типа:
struct MyStruct { int i; bool b; double d; }
using MyTuple = std::tuple<int,bool,double>;
Есть ли какой-нибудь стандартный способ приведения одного к другому?...
8044 просмотров
schedule
16.12.2022
Могу ли я инициализировать массив, используя std::initializer_list вместо инициализатора, заключенного в фигурные скобки?
Могу ли я инициализировать массив, используя объект std::initializer_list вместо инициализатора, заключенного в фигурные скобки?
Как известно, мы можем сделать это: http://en.cppreference.com/w/cpp/language/aggregate_initialization
unsigned...
3742 просмотров
schedule
13.08.2022