Результаты поиска по запросу "c++17"
конструктор? Это сделало бы весь мой вопрос недействительным / ненужным.
трите на этот код: struct NonConstexpr { NonConstexpr() { } }; template <typename T> struct Bar { NonConstexpr nonConstexpr; constexpr Bar() { } }; struct Foo { Bar<void> bar; constexpr Foo() { } };В этом кодеFooконструктор помечен какconstexpr, ...
Как ни странно, мне нужен тип по той же причине. Тело функции - это деталь реализации, и я хочу переместить ее в файл cpp. Но это оставляет тип возврата на сайте объявления без каких-либо вычетов, поэтому он не может быть автоматическим.
аюсь получить явный тип диапазона (я могу захотеть сохранить его как поле в классе в будущем). Однако, по некоторым причинам, он оцениваетvoid? #include <iostream> #include <set> #include <range/v3/view/transform.hpp> class Alpha { public: int ...
То есть аргумент принимается по ссылке на 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 >= ...
Вот
ел бы инициализировать статическийstd::map где значение не подлежит копированию. Я позвоню своему классуValueClass. ValueClassимеетstd::unique_ptr как частный член, и я даже гарантирую, что ValueClass не будет копироваться ...
Да, это довольно неудачно. Если я правильно понимаю вещи, это то же самое для всех компиляторов из-за потенциальных изменений ABI в ближайшем будущем. Я могу ошибаться
ался выйти на новыйБиблиотека STL файловой системы, но по какой-то причине получаю ошибки.Clang++7 веб-сайт указывает, что он должен поддерживать новыйfilesystem библиотека - действительноclang опережаетg++ Я верю. Я использовал некоторый код из ...
Я не могу думать ни о каком, потому что, если мы сдерживаем обещание иметь точно такое же определение встроенной переменной с внешней связью через TU, компилятор может выбрать любой из них для ссылки на переменную, это будет то же самое технически, так как имеет только один TU и имеет глобальную переменную, объявленную в заголовке с соответствующими защитниками заголовка
отрим следующий заголовок и предположим, что он используется в нескольких TU: static int x = 0; struct A { A() { ++x; printf("%d\n", x); } };Какэтот ...
... или для любителей запутанного кода ...
у вызвать ошибку времени компиляции, если не в constexpr, если условия выполняются, например: if constexpr(condition1){ ... } else if constexpr (condition2) { .... } else if constexpr (condition3) { .... } else { // I want the else clause never ...
(второе предложение). В первом случае тип существующего значения prvalue корректируется, в то время как во втором случае создается новое значение prvalue с типом, квалифицированным cv, который корректируется с помощью [expr.type] / 2, так что объект с типом cv-unqualified будет материализовано, что является дефектом.
родолжение моегопредыдущий вопрос [https://stackoverflow.com/questions/42989034/cv-qualifications-of-prvalues-in-c14] где очевидный консенсус заключался в том, что изменение в обработке cv-квалификаций prvalues было довольно незначительным и ...
Обратите внимание, что компиляция объявления clang сама по себе не является ошибкой компилятора. Это класс ситуаций, которые плохо сформированы, диагностика не требуется.
ел бы использовать функцию и передатьconstexpr lambda, Тем не менее, он успешно компилируется, только если я позволю типу выводиться черезauto, Явно давая тип через-> std::array<event, l()> похоже на провал (первый случай). Почему это? template ...
Преимущество округления inline-ASM путем помещения значения float в переменную int
Я унаследовал довольно интересный кусок кода: inline int round(float a) { int i; __asm { fld a fistp i } return i; } Моим первым побуждением было отказаться от него и заменить звонки на(int)std::round (до C ++ 11, будет использоватьstd::lround ...