Запитання з тегом «std»

Стандартна бібліотека C ++ та її простір імен. Використовувати спільно з [c ++].

6
Як поєднати хеш-значення в C ++ 0x?
C ++ 0x додає hash<...>(...). Я не зміг знайти hash_combineфункцію, як показано у boost . Який найчистіший спосіб реалізувати щось подібне? Можливо, за допомогою C ++ 0x xor_combine?
87 c++  c++11  boost  hash  std 

2
Як реалізується std :: is_function?
Як здійснюється наступна реалізація std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (із довідки CPP ) Мені здається, intфункція під цим визначенням була б функцією. Що я пропускаю?
82 c++  templates  std  sfinae 

5
std :: lexical_cast - чи є таке?
Чи визначає стандартну бібліотеку C ++ цю функцію, чи мені доводиться вдаватися до Boost? Я шукав в Інтернеті і не міг знайти нічого, крім Boost, але я подумав, що мені краще запитати тут.

2
Чому std :: hash не гарантовано буде детермінованим?
Згодом ми використовуємо N4140 (стандарт C ++ 14). Відповідно до § 17.6.3.4 Вимоги до хешу , Повернене значення залежить лише від аргументу k протягом тривалості програми . [Примітка. Таким чином, всі оцінки виразу h(k)з однаковим значенням kдають однаковий результат для заданого виконання програми . - кінцева примітка] і § 20.9.12 …

2
Список ініціалізаторів всередині std :: pair
Цей код: #include <iostream> #include <string> std::pair<std::initializer_list<std::string>, int> groups{ { "A", "B" }, 0 }; int main() { for (const auto& i : groups.first) { std::cout << i << '\n'; } return 0; } компілює, але повертає segfault. Чому? Тестується на gcc 8.3.0 та на онлайн-компіляторах.
26 c++  std  std-pair 

1
Чому std :: swap не працює на елементах вектор <bool> під Clang / Win?
У мене такий код: #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } Аргументи про розумність vector&lt;bool&gt;убік, це справно працювало на: Кланг для Mac Visual Studio для Windows GCC для Linux Потім я спробував побудувати його з Clang у Windows і отримав таку помилку (скорочена): error: …

1
Чому своп викликається std :: sor, лише якщо мій контейнер містить більше 32 елементів?
Привіт, у мене просте запитання: class A { public: A(int); A(const A&amp;); A&amp; operator=(const A&amp;); ~A(); private: int* ptr_; friend bool operator&lt;(const A&amp;, const A&amp;); friend void swap(A&amp;, A&amp;); }; A::A(int x) : ptr_(new int(x)) {} A::A(const A&amp; rhs) : ptr_(rhs.ptr_ ? new int(*rhs.ptr_) : nullptr) {} A&amp; A::operator = …
13 c++  std  swap 

1
Чому в std :: span відсутні оператори порівняння?
Хіба не std::spanрозроблена як легка посилання на субрегіони std::vector/ std::array/ простого масиву тощо? Чи не повинен він також містити операторів порівняння у своєму API, щоб вони відповідали їм? Які міркування за виключенням? Примітка: оператори порівняння, я маю в виду або повний набір ( &lt;, &lt;=, ...) або космічний корабель&lt;=&gt;
10 c++  std  c++20  std-span 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.