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

1 ответ

@StoryTeller: хорошо, спасибо, прочитав эту цитату несколько раз + ваш комментарий, теперь я понимаю, что происходит. Но теперь я не могу понять логику, лежащую в основе этого: «не удается удовлетворить требования к конструктору ... constexpr, эта специализация по-прежнему остается конструктором ... constexpr». Какая? Почему?

трите на этот код: struct NonConstexpr { NonConstexpr() { } }; template <typename T> struct Bar { NonConstexpr nonConstexpr; constexpr Bar() { } }; struct Foo { Bar<void> bar; constexpr Foo() { } };Foo имеет члена,Foo::bar::nonConstexpr, который ...

2 ответа

@ T.C. Формулировка обновлена.

я есть следующий пример #include <cstdint> class FooC { public: FooC(uint16_t iPort, uint16_t iPin) : PORT(iPort) , PIN(iPin) { }; ~FooC() = default; FooC() = delete; FooC(const FooC&) = delete; FooC(FooC&&) = delete; private: const uint16_t ...

2 ответа

@ T.C. Вы правы, но я не ошибаюсь :). Я не поощрял брать его адрес. Я согласен, что ваше конкретное использование является ловушкой, но хотел бы отметить, что использование такого объекта в общем определении не является неправильным в целом.

тавьте, что у нас есть заголовокfoo.h содержащий следующее: #ifndef FOO_H_ #define FOO_H_ namespace foo { constexpr std::string_view kSomeString = "blah"; } #endif // FOO_H_Являетсяfoo::kSomeString гарантированно иметь внутреннюю связь в любой ...

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

2 ответа

Код не является реальным кодом, но перевод структурированной привязки делает.

лько мне известно, идентификаторы, представленные структурированными привязками в C ++ 17, на самом деле являются ссылками на некоторую «скрытую» переменную....

1 ответ

Хорошая перспектива!

аюсь понять структурированные привязки, представленные в C ++ 17. Объяснение по cppreference [http://en.cppreference.com/w/cpp/language/structured_binding]для меня не очевидно, но похоже cv-auto ref-operator [x, y, z] = ...примерно эквивалентно ...

2 ответа

).

разница между

3 ответа

... или для любителей запутанного кода ...

у вызвать ошибку времени компиляции, если не в constexpr, если условия выполняются, например: if constexpr(condition1){ ... } else if constexpr (condition2) { .... } else if constexpr (condition3) { .... } else { // I want the else clause never ...

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 >= ...

1 ответ

PR35107

сно с [temp.deduct.guide/3 [https://timsong-cpp.github.io/cppwp/n4659/temp.deduct.guide#3]]: (...) Руководство по дедукции должно быть объявлено в той же области видимости, что и соответствующий шаблон класса, и, для шаблона класса члена, с ...

1 ответ

Я совершенно не в духе :) Спасибо за вашу историю!

еялся, чтоstringstream имеет конструктор, который крадет свое начальное содержимое изstring&&, Разве таких межвидовых «конструкторов перемещения» вообще не существует в STL? Если нет, то почему?