Результаты поиска по запросу "c++17"

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 следующее предложение было включено ...

1 ответ

@ Rakete1111 - вы (и g ++) правы; Я вообще не знал об этом улучшении C ++ 17; Благодарю.

clang, похоже, не согласны с тем, должен ли этот код компилироваться или нет: #include <type_traits> template <typename Signature, int N = 0> struct MyDelegate { }; template <typename D> struct signature_traits; template <template <typename> ...

2 ответа

@VittorioRomeo: Еще одно редактирование - я склонен это сделать.

отрим следующий сценарий: std::array<int, 8> a; auto p = reinterpret_cast<int(*)[8]>(a.data()); (*p)[0] = 42;Этонеопределенное поведение? Я думаю, что это. a.data() возвращаетint*, который не совпадает сint(*)[8] правила наложения ...

ТОП публикаций

1 ответ

@Brian Public сейчас.

е следующее: struct X { X() {} X(X&&) { puts("move"); } }; X x = X();В C ++ 14 перемещение может быть исключено, несмотря на то, что конструктор перемещения имеет побочные эффекты благодаря [class.copy] / 31, Такое исключение операций ...

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 */; }; ...

0 ответов

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

refдо C ++ 17 верно следующее: [http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared]код такой как может вызвать утечку памяти, еслиf(std::shared_ptr<int>(new int(42)), g()) вызывается послеg и бросает исключение, в то время какnew ...

2 ответа

Я бы сказал, что это проблема QoI :)

орошего в использовании[[maybe_unused]]? Рассмотреть возможность int winmain(int instance, int /*prevInstance*/, const char */*cmdline*/, int show); int winmain(int instance, [[maybe_unused]] int prevInstance, [[maybe_unused]] const char ...

1 ответ

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

ал набор классов, чтобы позволить простой Python-какzip-функции. Следующий фрагмент работает (почти) так же, как и ожидалось. Тем не менее, две переменныеa а такжеb неconst. std::vector<double> v1{0.0, 1.1, 2.2, 3.3}; std::vector<int> v2{0, 1, ...

1 ответ

Существует опция «опция языка c ++», где OP сказал, что он установил / std: c + = 17. Мое предложение состояло в том, чтобы заменить то, что он имеет сейчас, с "/ std: c ++ latest". Теперь, когда я думаю об этом, это изменение не должно иметь значения - string_view уже в C ++ 17. Вам не нужно последнее для это.

должаю получать сообщения об ошибках на std :: string_view, но я умею строить просто отлично. Есть ли способ сказать intellisense или линтеру C ++ использовать C ++ 17? Конкретная ошибка, которую я получаю: namespace "std" has no member ...

4 ответа

Например, но это также не поддерживается стандартом.

уstd::any_cast броситьstd::bad_any_cast исключение, когда неявное преобразование из фактического сохраненного типа в запрошенный тип будет возможно? Например: std::any a = 10; // holds an int now auto b = std::any_cast<long>(a); // ...