Запитання з тегом «c++11»

Використовуйте цей тег для коду, який повинен скласти як C ++ 11 (не використовуючи жодних функцій, введених у C ++ 14 або новіших версіях).

6
Дублікат коду за допомогою c ++ 11
Зараз я працюю над проектом, і у мене є наступне питання. У мене є метод C ++, над яким я хочу працювати двома різними способами: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } І я хотів би не дублювати мій код, оскільки фактична …
80 c++  c++11  templates 

12
Невикористаний параметр в c ++ 11
У c ++ 03 і раніше для вимкнення попередження компілятора про невикористаний параметр я зазвичай використовую такий код: #define UNUSED(expr) do { (void)(expr); } while (0) Наприклад int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } Але макроси - це не найкраща практика для c ++, тому. Чи …


5
Чи є випадки, коли повернення посилання на RValue (&&) є корисним?
Чи є причина, коли функція повинна повертати посилання RValue ? Техніка, або фокус, або ідіома чи шаблон? MyClass&& func( ... ); Я усвідомлюю небезпеку повернення посилань загалом, але іноді ми все одно робимо це, чи не так? T& T::operator=(T)це лише один ідіоматичний приклад. Але як щодо T&& func(...)? Чи є …


6
Розширення варіативного пакета шаблонів
Я намагаюся вивчити різноманітні шаблони та функції. Я не можу зрозуміти, чому цей код не компілюється: template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } Коли я компілюю, це не вдається з помилкою: …

6
Як виявити підтримку компілятора C ++ 11 за допомогою CMake
Чи є спосіб дозволити CMake визначати автоматично, якщо компілятор підтримує C ++ 11 чи ні? Оскільки було б непогано повідомити користувачів під час запуску CMake, що код не буде компілюватися, оскільки компілятор не підтримує C ++ 11. На даний момент я встановив прапори C ++ 11. Однак, якщо компілятор цього …
78 c++  c++11  cmake 

5
Як зробити загальні обчислення за неоднорідними пакетами аргументів варіадичної функції шаблону?
ПРОМІСЛЯ: Трохи погравши з варіативними шаблонами, я зрозумів, що досягнення всього, що трохи виходить за межі тривіальних завдань метапрограмування, незабаром стає досить громіздким. Зокрема, я виявив , бажаючи таким чином , щоб виконувати загальні операції над аргументом пакета , такі як ітерації , розкол , петлі в std::for_each-like моди, і …

4
Чому std :: array не має конструктора, який приймає значення для масиву, яким потрібно заповнити?
Це відсутність std::array<T,size>::array(const T& value); недогляд? Мені це здається дуже корисним, і динамічні контейнери (як std::vector) мають подібний конструктор. Я цілком усвідомлюю це std::array<T,size>::fill(const T& value); але це не конструктор, і пам'ять спочатку обнуляється. Що робити, якщо я хочу, щоб все було -1як цей хлопець ?
77 c++  c++11  stdarray 

4
регулярний вираз c ++ 11 повільніший за python
привіт, я хотів би зрозуміти, чому наступний код, який робить розділений рядок розділений за допомогою регулярного виразу #include<regex> #include<vector> #include<string> std::vector<std::string> split(const std::string &s){ static const std::regex rsplit(" +"); auto rit = std::sregex_token_iterator(s.begin(), s.end(), rsplit, -1); auto rend = std::sregex_token_iterator(); auto res = std::vector<std::string>(rit, rend); return res; } int main(){ …


7
Неможливо використовувати клас перелічення як ключ unordered_map
У мене є клас, що містить клас enum. class Shader { public: enum class Type { Vertex = GL_VERTEX_SHADER, Geometry = GL_GEOMETRY_SHADER, Fragment = GL_FRAGMENT_SHADER }; //... Потім, коли я реалізую наступний код в іншому класі ... std::unordered_map<Shader::Type, Shader> shaders; ... Я отримую помилку компіляції. ...usr/lib/c++/v1/type_traits:770:38: Implicit instantiation of undefined …
77 c++  c++11  map  enums  enum-class 

5
Чому в офіційних прикладах та підручниках Qt не використовуються розумні вказівники?
Чому в офіційних прикладах та навчальних посібниках про бібліотеку Qt ніколи не використовуються розумні вказівники? Я бачу тільки newі deleteдля створення і знищення віджетів. Я шукав обгрунтування, але не зміг його знайти, і сам не бачу, крім випадків, коли це пов’язано з історичними причинами або зворотною сумісністю: не всі хочуть, …
76 c++  qt  c++11 

3
C ++ 11 “автоматична” семантика
Коли я використовую C ++ 11 auto, якими є правила відрахування типу щодо того, чи буде воно перетворено на значення чи посилання? Наприклад, іноді це зрозуміло: auto i = v.begin(); // Copy, begin() returns an iterator by value Це менш зрозуміло: const std::shared_ptr<Foo>& get_foo(); auto p = get_foo(); // Copy …
76 c++  c++11 

5
shared_ptr та слабкі_ptr відмінності
Я читаю книгу Скотта Майерса "Ефективний C ++". Було згадано, що існують tr1::shared_ptrі tr1::weak_ptrдіють як вбудовані вказівники, але вони відстежують, скільки tr1::shared_ptrsвказує на об’єкт. Це називається підрахунком посилань. Це добре допомагає запобігти витоку ресурсів в ациклічних структурах даних, але якщо два або більше об'єктів містять tr1::shared_ptrsтаке, що формується цикл, цикл …

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