c++- все статьи тега ➜ страница 33
C++ геттеры / сеттеры стиль кодирования
Я некоторое время программировал на C#, и теперь я хочу освежить свои навыки C++. имея класс: class Foo { const std::string& name_; ... }; что было бы лучшим подходом (я только хочу разрешить доступ для чтения к полю name_): используйте метод геттера:inline const std::string& name() const { return name_; } сделать поле публичным, так как это константа спасибо. ...
Каково время жизни лямбда-выражения C++?
(Я читал, что такое время жизни лямбда-производных неявных функторов в C++? уже и он не отвечает на этот вопрос.) Я понимаю, что синтаксис лямбда-кода C++ - это просто сахар для создания экземпляра анонимного класса с оператором вызова и некоторым состоянием, и я понимаю требования к жизни этого состояния (решается ли вы захватить значение по ссылке.) Но каково время жизни самого лямбда-объекта? В следующем примере это std::function возвращенный экземпляр будет полезен? std::function<int(in ...
Инициализация двумерного std:: vector
Итак, у меня есть следующие: std::vector< std::vector <int> > fog; и я инициализирую его очень наивно, как: for(int i=0; i<A_NUMBER; i++) { std::vector <int> fogRow; for(int j=0; j<OTHER_NUMBER; j++) { fogRow.push_back( 0 ); } fog.push_back(fogRow); } и это кажется очень неправильным... Есть ли другой способ инициализации вектора, как это? ...
Как новый цикл for на основе диапазона в C++17 помогает диапазонам TS?
комитет изменил диапазон на основе цикла for от: C++11: { auto && __range = range_expression ; for (auto __begin = begin_expr, __end = end_expr; __begin != __end; ++__begin) { range_declaration = *__begin; loop_statement } } на C++17: { auto && __range = range_expression ; auto __begin = begin_expr ; auto __end = end_expr ; for ( ; __begin != __end; ++__begin) { range_declaration = *__begin; l ...
Как сделать паузу Visual Studio после выполнения консольного приложения в режиме отладки?
У меня есть коллекция модульных тестов Boost, которые я хочу запустить как консольное приложение. когда я работаю над проектом и запускаю тесты, я хотел бы иметь возможность отлаживать тесты, и я хотел бы, чтобы консоль оставалась открытой после запуска тестов. Я вижу, что если я запускаю в режиме выпуска, окно консоли остается после выхода программы, но в режиме отладки это не так. Я не хочу добавлять ' system ("pause"); ' или любые другие хаки как чтение персонажа в моей программе. Я просто ...
Когда я должен использовать typedef в C++?
в мои годы программирования на C++ (MFC) я никогда не чувствовал необходимости использовать typedef, Так что я действительно не знаю, для чего он используется. Где я должен его использовать? Существуют ли какие-либо реальные ситуации, когда использование typedef предпочтительнее? Или это действительно больше ключевое слово C-specific? ...
Как ускорить время компиляции g++ (при использовании большого количества шаблонов)
этот вопрос, возможно, как-то странно, но как я могу ускорить время компиляции g++? Мой код на C++ сильно использует boost и шаблоны. Я уже переместил как можно больше файлов заголовков и использовал опцию-j, но все же для компиляции (и ссылки) требуется довольно много времени. есть ли какие-либо инструменты, которые анализируют мой код и указывают на бутылочные горлышки для компилятора? Или можно как-то профилировать компилятор, работающий на моем коде? Это было бы очень приятно, потому что ин ...
Сравнение массивов в тесте google?
Я ищу, чтобы сравнить два массива в тесте google. В UnitTest++ это делается через CHECK_ARRAY_EQUAL. Как это сделать в тесте google? ...
Использует ли double быстрее, чем float?
двойные значения хранят более высокую точность и удваивают размер поплавка, но оптимизированы ли процессоры Intel для поплавков? то есть двойные операции так же быстро или быстрее, чем операции с плавающей точкой для+, -, * и /? изменяется ли ответ для 64-разрядных архитектур? ...
Что означает " оператор bool () const"
например: operator bool() const { return col != 0; } col - это int. Как это operator bool() const работы? ...
C++ объединение в C#
я перевожу библиотеку, написанную на C++ в C#, и ключевое слово "union" существует один раз. В структуре. Как правильно перевести его на C#? И что он делает? Это выглядит примерно так: struct Foo { float bar; union { int killroy; float fubar; } as; } ...
Контейнеры C++ STL: в чем разница между deque и list?
в чем разница между ними? Я имею в виду, что все методы одинаковы. Таким образом, для пользователя они работают одинаково. Это правильно?? ...
Почему размер пустого класса В C++ не равен нулю? [дубликат]
Возможные Дубликаты:C++: каков размер объекта пустого класса? почему следующий вывод 1? #include <iostream> class Test { }; int main() { std::cout << sizeof(Test); return 0; } ...
Какие функции C++11 поддерживает Visual Studio 2010?
здесь список для GCC; есть ли аналогичный список для Visual Studio 2010? ...
что в cout
в следующем примере: cout<<"n"[a==N]; Я понятия не имею о том, что и в cout, но он не печатает новую строку, если значение a равна N. ...
Бесконечный цикл в конструкторе без for или while
Я сделал тест здесь, но выход-это цикл без конца, я не знаю, почему. на самом деле, я делаю еще один тест, но когда я написал это, я не понимаю, как цикл произошел. Выводится" ABC " многократно. #include <map> #include <string> #include <iostream> class test { public: std::map <int, int> _b; test(); test (std::map<int, int> & im); ~test(); }; test::test() { std::cout<<"abc"; _b.clear(); _b[1]=1; test(_b); } test::test(std::map ...
В чем разница между.файл DLL.,библиотека.,H-файлы?
Почему в проект я должен включить некоторые *.библиотека. ,h или некоторые другие файлы? И для чего эти вещи используются? ...
Что такое нетривиальный конструктор в C++?
Я читал это http://en.wikipedia.org/wiki/C%2B%2B0x#Modification_to_the_definition_of_plain_old_data Он упоминает тривиальный конструктор по умолчанию, тривиальный конструктор копирования, оператор присваивания копии, тривиальный деструктор. Что тривиально и не тривиально? ...
Как создать строковый литерал UTF-8 в Visual C++ 2008
в VC++ 2003, я мог бы просто сохранить исходный файл как UTF-8 и все строки были использованы как есть. Другими словами, следующий код будет печатать строки в консоли. Если исходный файл был сохранен как UTF-8, то выход будет UTF-8. printf("Chinese (Traditional)"); printf("中国語 (繁体)"); printf("중국어 (번체)"); printf("Chinês (Tradicional)"); Я сохранил файл в формате UTF-8 С помощью спецификации UTF-8. Однако компиляция с VC2008 приводит к: warning C4566: character represented by universal-charact ...
C++ unit testing framework [закрыто]
Я использую платформу тестирования Boost для моего кода C++, но с ней есть две проблемы, которые, вероятно, являются общими для всех тестовых платформ C++: нет способа создать автоматические тестовые заглушки (например, путем извлечения публичных функций из выбранных классов). вы не можете запустить один тест - вы должны запустить весь "набор" тестов (если вы не создадите много разных тестовых проектов, я думаю). кто-нибудь знает лучше Testing framework или я навсегда завидую тестовым инструм ...