Лучшие c++17 вопросы ИТ разработчиков

  • 1 голос
  • 0 ответов
  • 0 просмотров
0 ответов

Короче говоря, в test_int_no_if нет ничего, что зависит от того, являюсь ли я constexpr, а в test_int () - есть. («constexpr if» работает только с выражениями времени компиляции.)

аюсь сравнить параметр функции внутри оператора constexpr-if. Вот простой пример: constexpr bool test_int(const int i) { if constexpr(i == 5) { return true; } else { return false; } }Однако, когда я компилирую это с GCC 7 со ...

Задан 28 Jul 2017, 15:26 от GoogieK
  • 16 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

 теперь плохо сформирован без соответствующего исправления частичного упорядочения.

ня я читал страницу поддержки C ++ 17 clang. Я заметил кое-что странное. ОсобенностьСоответствие параметров шаблона шаблона совместимым аргументам ( P0522R0 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html]) помечен как ...

Задан 14 Nov 2017, 18:48 от Guillaume Racicot
  • 34 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Какие заголовки в стандартной библиотеке C ++ гарантированно включают другой заголовок?

Заголовки стандартной библиотеки C ++ могут включать друг друга неопределенным образом, поэтому программисты обычно не должны зависеть от одного заголовка, в...

Задан 28 Oct 2014, 17:43 от T.C.
  • 22 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Используйте это так:

ользую VS 15.3, который поддерживает интегрированный CMake 3.8. Как я могу ориентироваться на C ++ 17 без написания флагов для каждого конкретного компилятора? Мои текущие глобальные настройки не работают: # ...

Задан 15 Aug 2017, 07:46 от MiP
  • 23 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Скорее всего это синдром обратного сравнения

ринд поднял суматохуУсловный переход или перемещение зависит от неинициализированных значений в одном из моих юнит-тестов. Осмотрев сборку, я понял, что следующий код: bool operator==(MyType const& left, MyType const& right) { // ... some code ...

Задан 31 Jul 2018, 14:46 от Matthieu M.
  • 9 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Я полностью согласен с вами по поводу отсутствия примера на странице cppreference. Вот мой дубль:

елstd::result_of осуждается в C ++ 17. В чем причинаstd::result_of устарел в C ++ 17?Также я хотел бы знать разницу междуstd::result_of а такжеstd::invoke_result.

Задан 03 Sep 2017, 08:48 от M.S Chaudhari
  • 5 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Как выполнить арифметику кортежей в C ++ (c ++ 11 / c ++ 17)?

Я пытаюсь написать шаблонные функции / операторы, такие как+ для выполнения арифметических операций между двумя кортежами одного типа. Например, для std::tuple<int,double> t = std::make_tuple(1,2); Я бы хотел сделать auto t1 = t + t; Логика ...

Задан 09 Nov 2017, 19:04 от tinlyx
  • 11 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

std :: визит для варианта не компилируется в клане, g 5 [duplicate]

На этот вопрос уже есть ответ: get <string> для вариантов не работает в clang ++, но не g ++ [/questions/46506387/getstring-for-variants-fail-under-clang-but-not-g] 1 ответ Следующее использование std :: visit правильно компилируется под gcc ...

Задан 21 Oct 2017, 00:48 от user2736667
  • 11 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

и использовать

отрим следующий код: struct A {}; template <typename T> struct B { B(T) {} auto foo() {return B(A{});} // error: no matching function for call to 'B<int>::B(A)' }; auto foo() {return B(A{});} // compiles int main() { foo(); B b(0); b.foo(); ...

Задан 08 Aug 2018, 19:52 от HolyBlackCat
  • 34 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

@songyuanyao ты прав. cppreference не показывает ни ctor, ни руководства по выводам. Не проверял стандарт.

одом аргумента шаблона класса мы можем написать: std::less Fn;Однако G ++ 8.2 отклоняет этот код: #include <algorithm> #include <vector> #include <functional> int main() { std::vector v= { 1, 3, 2, 7, 5, 4 ...

Задан 02 Nov 2018, 07:47 от metalfox
  • 15 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

а потом

проект, У меня есть [https://github.com/skypjack/entt]Генератор идентификаторов для типов, которые похожи на это: [https://github.com/skypjack/entt/blob/master/src/entt/core/family.hpp] Использование: class Family { static std::size_t ...

Задан 13 Jul 2018, 21:10 от skypjack
  • 12 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

 используется в ассоциативных контейнерах и т. д., однако, требуется умение сравнивать произвольные указатели, даже если это дороже.

роса: Правильно ли сформирован следующий код с определенным поведением? Есть ли возможная реализация C ++, в которой он может утверждать? Код (c ++ 11 и выше): #include <cassert> #include <utility> #include <ciso646> template<class T> ...

Задан 02 Dec 2017, 17:53 от Richard Hodges
  • 17 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

 может быть перепрофилирован для более полезных языковых функций.

ли гуру стандартов C ++ просветить меня?С какой версии стандарта C ++ этот оператор потерпел неудачу, потому что

Задан 22 Jun 2017, 07:41 от JVD
  • 242 голосов
  • 26 ответов
  • 0 просмотров
26 ответов

enum to string in modern C++11 / C++14 / C++17 and future C++2

Вопреки всем другим подобным вопросам, этот вопрос касается использования новых функций C ++. 2008c [/questions/tagged/c] Есть ли простой способ преобразовать перечисление C ++ в строку? [/questions/201593] 2008c [/questions/tagged/c] Простой ...

Задан 03 Mar 2015, 10:05 от olibre
  • 7 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Однако, насколько мне известно, в настоящее время нет способа обойти это без изменений кода, если не считать обновления до следующего выпуска Clang, когда бы он ни вышел.

аргумента шаблона в Clang 6 для временных объектов не работает. g ++ 8.1.0 компилирует и запускает пример правильно. Clang 6.0.0 и 6.0.2 обе ошибки в указанной строке с этим сообщением: error: expected unqualified-id Print{1,"foo"s,2}; ...

Задан 21 May 2018, 01:15 от user9816683
  • 23 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

По крайней мере, стоило бы сообщить авторам, что текущая реализация ломает вещи.

онимание оВывод аргумента шаблона для шаблонов классов Было предложено унифицировать поведение шаблонных функций и шаблонных классов в контексте дедукции. Но...

Задан 24 Jan 2017, 16:40 от PaperBirdMaster
  • 1 голос
  • 1 ответ
  • 0 просмотров
1 ответ

 если у вас нет или вы хотите использовать

о я просто использовал бы ввод-вывод в стиле C, но я пробую современный подход к C ++, включая использование специфических возможностей C ++ 17std::byte а такжеstd::filesystem. Чтение всего файла в память, традиционный метод: #include <stdio.h> ...

Задан 15 Jul 2018, 23:09 от Terry Brian
  • 8 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Результирующая лямбда выглядит так:

ользуюstd::ptr_fun следующее: static inline std::string &ltrim(std::string &s) { s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace)))); return s; }как представлено вэтот ответ ...

Задан 07 Jul 2017, 14:34 от user3717478
  • 22 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Не мое отрицательное мнение, кстати.

тся ли правильными несколько специализаций шаблонов классов, если каждая из них отличается только между шаблонами, включающими параметры шаблона, в не выводимых контекстах? Типичный примерstd::void_t использует его для определения черты, ...

Задан 29 Aug 2017, 22:05 от user2023370
  • 1 голос
  • 1 ответ
  • 0 просмотров
1 ответ

То есть аргумент принимается по ссылке на const, а не по значению. Как есть, вы пытаетесь скопировать кортеж non-constexpr в константном выражении - это не может работать. По ссылке это хорошо, так как вы на самом деле не читаете кортеж.

я естьstatic_loop построить как это template <std::size_t n, typename F> void static_loop(F&& f) { static_assert(n <= 8 && "static loop size should <= 8"); if constexpr (n >= 8) f(std::integral_constant<size_t, n - 8>()); if constexpr (n >= ...

Задан 30 Dec 2018, 13:41 от Amos
  • 51 голос
  • 1 ответ
  • 0 просмотров
1 ответ

reinterpret_cast создание тривиально конструируемого объекта по умолчанию

cppreference&#x2020; говорится, что:Объекты с тривиальными конструкторами по умолчанию могут быть созданы с помощью

Задан 29 Nov 2016, 18:48 от Barry
  • 37 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

, Обе функции все еще существуют из-за обратной совместимости.

C ++ 11 я подумалc_str() а такжеdata() эквивалентно [https://stackoverflow.com/questions/194634/string-c-str-vs-data]. C ++ 17 вводит перегрузку для последнего, которая возвращает непостоянный указатель (ссылка ...

Задан 27 Nov 2018, 13:03 от gsamaras
  • 2 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Также было бы возможно объявить шаблонный псевдоним с одним параметром, что делает интерфейс более самодокументированным

ние довольно сложно сформулировать словом, но вот что я пытаюсь достичь в некомпилируемом коде:

Задан 27 May 2017, 00:26 от George
  • 51 голос
  • 3 ответа
  • 0 просмотров
3 ответа

это означает, что OP хочет получить ответ, подкрепленный ссылками на стандарт ISO C ++. Не имеет значения, что он компилируется (на самом деле многие нарушения ODR компилируются просто отлично).

отрим этот пример изcppreference [http://en.cppreference.com/w/cpp/language/definition]: struct S { static const int x = 1; }; void f() { &S::x; } // discarded-value expression does not odr-use S::xЯ согласен, что&S::x этовыражение ...

Задан 23 Dec 2017, 11:18 от b1sub
  • 14 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

 Компиляторы поддерживают эту функцию сейчас.

ался поиграть с новыми возможностями параллельной библиотеки, предложенными в стандарте C ++ 17, но не смог заставить его работать. Я попытался скомпилировать с современными версиямиg++ 8.1.1 а такжеclang++-6.0 а также-std=c++17, но ни один, ...

Задан 25 Jun 2018, 20:03 от Romeo Valentin
  • 16 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

 действительно будет пустым в этой ситуации.

отрим следующий код: template <typename... Types> struct list { template <typename... Args> list(Args...) { static_assert(sizeof...(Types) > 0); } }; template <typename... Args> list(Args...) -> list<Args...>; int main() { list l{0, 0.1, 'a'}; ...

Задан 20 Oct 2017, 11:24 от Vittorio Romeo
  • 14 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

, Это было бы хорошим дополнением к Hana, чтобы сделать их заказчиками, потенциальная ловушка в том, что порядок может в конечном итоге зависеть от платформы / компилятора.

отрим следующую программу: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class... T> struct ordered<std::tuple<T...>> { using type = /* a reordered tuple */; }; ...

Задан 10 Feb 2018, 18:09 от Vincent
  • 25 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

если будет неудачная вставка, пары не будут созданы, что повышает производительность

+ 17std::map [http://en.cppreference.com/w/cpp/container/map]а также std::unordered_map [http://en.cppreference.com/w/cpp/container/unordered_map] получил новый шаблон ...

Задан 05 Sep 2017, 04:01 от s3rvac
  • 12 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

@Gianni nop означает бездействие. Перемещение не всегда отличается или дешевле, чем копировать. Перемещение - это всего лишь оптимизация или способ передачи права собственности на объекты, которые нельзя копировать.

равильно объявлять методы создания экземпляров при определении класса интерфейса? Абстрактные базовые классы должны иметь виртуальный деструктор по очевидным причинам. Однако затем выдается следующее предупреждение компиляции: «InterfaceClass ...

Задан 22 Apr 2018, 01:49 от user7119460
  • 3 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Как ни странно, мне нужен тип по той же причине. Тело функции - это деталь реализации, и я хочу переместить ее в файл cpp. Но это оставляет тип возврата на сайте объявления без каких-либо вычетов, поэтому он не может быть автоматическим.

аюсь получить явный тип диапазона (я могу захотеть сохранить его как поле в классе в будущем). Однако, по некоторым причинам, он оцениваетvoid? #include <iostream> #include <set> #include <range/v3/view/transform.hpp> class Alpha { public: int ...

Задан 07 Dec 2018, 06:16 от CygnusX1
  • 17 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Ну, этот ответ не делает никакого прогресса в направлении четкого решения вопроса. Является ли допущение об уникальности между границами библиотеки несомненно гарантированным стандартом? Вот в чем вопрос. И все, что я вижу здесь, это «[...] я верю, это да». Да, я тоже так думаю. Но это не то, что хочет ОП. Он хочет фактов и гарантий. И простого тестирования его для каждой платформы может быть недостаточно, так как если это не гарантировано, то обновление компилятора / компоновщика может изменить свое поведение позже. Это просто поспешный ответ без фактов. извиняюсь

родолжениеэтот вопрос [https://stackoverflow.com/questions/51332851/alternative-id-generators-for-types/51334917#comment89715080_51334917] . Как уже упоминалось в комментариях к ответу: Встроенная переменная имеет свойство, которое -У него ...

Задан 17 Jul 2018, 06:27 от skypjack
  • 1 голос
  • 1 ответ
  • 0 просмотров
1 ответ

Для значений вам даже не нужно придумывать собственный тип тега - вы можете скопировать его поверх

т вопрос указано, что невозможно просто напрямую использовать аргументы шаблона для конструктора класса, потому что если вы напишите что-то вродеТогда у вас ...

Задан 04 Apr 2017, 15:37 от alexeykuzmin0
  • 80 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

 на некоторых компиляторах) не рассматривает указатели как тривиальные типы. Компиляторы не относятся к требованиям стандарта серьезно, равно как и люди, которые пишут стандарты, мечтают о другом языке и изобретают всевозможные изобретения, которые прямо противоречат основным принципам. Очевидно, что пользователи смущены и иногда плохо обращаются, когда жалуются на ошибки компилятора.

ношенииэтот вопрос и ответ [https://stackoverflow.com/questions/48058545/are-there-any-guarantees-for-unions-that-contain-a-wrapped-type-and-the-type-its/48060029#48060029] .) До стандарта C ++ 17 следующее предложение было включено ...

Задан 02 Jan 2018, 14:00 от Oliv
  • 3 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

перешел в чат

лько я знаю,memcpy в неинициализированное хранилищене можешь [https://stackoverflow.com/q/30114397/149138]безопасно использовать для создания копии исходного объекта. Однако вэта тема ...

Задан 20 Oct 2017, 00:43 от BeeOnRope
Page 1 of 4
1 2 3 4