Вопросы с тегом «c++17»

11
Современный подход к созданию std :: vector для выравнивания памяти

Следующий вопрос связан, однако ответы на старые, и комментарий от пользователя Marc Glisse предполагает , что есть новые подходы , начиная с C ++ 17 к решению этой проблемы , которые не могут быть адекватно обсуждены. Я пытаюсь выровнять память, работающую правильно для SIMD, при этом все еще имея...

11
Неквалифицированный sort () - почему он компилируется при использовании на std :: vector, а не на std :: array, и какой компилятор корректен?

При звонке std::sort()на std::array: #include <vector> #include <array> #include <algorithm> int main() { std::vector<int> foo{4, 1, 2, 3}; sort(begin(foo), end(foo)); std::array<int, 4> foo2{4, 1, 2, 3}; sort(begin(foo2), end(foo2)); } И gcc, и clang возвращают ошибку...

10
Как убрать копию при создании цепочки?

Я создаю класс типа цепочки, такой как маленький пример ниже. Похоже, что при объединении функций-членов вызывается конструктор копирования. Есть ли способ избавиться от вызова конструктора копирования? В моем примере с игрушкой, приведенным ниже, очевидно, что я имею дело только с временными, и...

10
Вывод аргумента шаблона для аргумента типа функции

Рассмотрим следующую программу. #include <iostream> template <typename T> void f( void ( *fn )( T ) ) { fn( 42 ); } void g( int x ) { std::cout << "g( " << x << " );\n"; } int main() { f( g ); } Программа успешно компилируется, и ее вывод g( 42 ); Теперь давайте...

10
Когда вам нужна строка с нулевым окончанием в сценарии только для чтения?

Я играл с std::string_viewбиблиотекой и обдумывал изменение кодовой базы, над которой я работал, чтобы использовать std::string_viewкак можно больше. Тем не менее, во многих темах, которые я прочитал на тему, когда и где использовать std::string_viewвместо const std::string &. Я видел много...

10
Почему я не могу получить индекс варианта и использовать его для получения его содержимого?

Я пытаюсь получить доступ к содержанию варианта. Я не знаю, что там, но, к счастью, вариант делает. Поэтому я подумал, что просто спрошу у варианта, в каком индексе он находится, а затем использую этот индекс для std::getсвоего содержимого. Но это не компилируется: #include <variant> int...

9
Что гарантировано с C ++ std :: atomic на уровне программиста?

Я выслушал и прочитал несколько статей, выступлений и вопросов о стековом потоке std::atomicи хотел бы быть уверен, что хорошо это понял. Потому что я все еще немного запутался с видимостью записи строк кэша из-за возможных задержек в протоколах когерентности кэша MESI (или производных), буферах...

9
Допустимый синтаксис вызова псевдодеструктора для плавающей константы

Рассмотрим следующую демонстрационную программу. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Эта программа составлена Microsoft Visual Studio Community 2019. Но clangи gccвыдать ошибку, как это prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7...

9
Порядок выполнения оператора new и аргумента конструктора

Спецификация C ++ определяет порядок operator newи конструктор Aв new C(A()). G ++ пусть порядок будет A()-> new-> C(), но clang ++ пусть это будет new-> A()-> C(). Разница вызвана неопределенным поведением? g ++: 7.4.0 clang ++: 10.0.0 #include <iostream> #include <cstdlib>...