Результаты поиска по запросу "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, который ...

4 ответа

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

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

0 ответов

 типы являются дополнительными.

у сопоставить число типу. Для этого примера я сделаю функцию, которая отображает результат sizeof () на подписанный тип примитива. Мне интересно, есть ли лучший способ сделать то, что я сделал ниже в современном C ++, - это взять шаблонное ...

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

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 ответа

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

1 ответ

timsong-cpp.github.io/cppwp/class.union#5

трите на этот код: struct A { short s; int i; }; struct B { short s; int i; }; union U { A a; B b; }; int fn() { U u; u.a.i = 1; return u.b.i; }Гарантируется ли это, чтоfn() возвращается1? Примечание: это дополнительный вопрос ...

2 ответа

среди реализаций, которые подходят для низкоуровневого программирования

артопределяет [http://eel.is/c++draft/basic.types#11]когда два типамакет-совместимый, Но я не вижу нигде в стандарте, каковы последствия, когда два типамакет-совместимый, Кажется, чтомакет-совместимый это определение, которое нигде не ...

1 ответ

 это даже не утверждение. Это половина одного.

овленэтот ответ [https://stackoverflow.com/a/52355930/7151494]Я попытался скопировать и вставить (и добавить тестирование вmain()) этот код: template<typename T> std::tuple<int, double> foo(T a) { if constexpr (std::is_same_v<int, T>) return {a, ...

1 ответ

 переменная похожа на глобальное определение в классе.

struct sa { struct sb { int a = 123;}; inline static sb b; };денный выше код генерирует ошибку: main.cpp:25:20: error: default member initializer for ‘sa::sb::a’ required before the end of its enclosing class inline static sb b; ^ ...

1 ответ

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

я есть код, который по-разному интерпретируется g ++ сc++14 а такжеc++17 стандартные флаги: #include <iostream> #include <vector> template<class T, class A> void func(const std::vector<T, A>&v) { std::cout << 1 << std::endl; } template<typename ...