Вопросы с тегом «c++»

87
C ++ 11 позволяет внутри класса инициализировать нестатические и неконстантные члены. Что изменилось?

До C ++ 11 мы могли выполнять инициализацию внутри класса только для статических констант целочисленного или перечислимого типа. Страуструп обсуждает это в своем FAQ по C ++ , приводя следующий пример: class Y { const int c3 = 7; // error: not static static int c4 = 7; // error: not const static...

87
С ++ 11 emplace_back в векторе <struct>?

Рассмотрим следующую программу: #include <string> #include <vector> using namespace std; struct T { int a; double b; string c; }; vector<T> V; int main() { V.emplace_back(42, 3.14, "foo"); } Не работает: $ g++ -std=gnu++11 ./test.cpp In file included from...

87
Как записать std :: string в файл?

Я хочу записать std::stringпеременную, которую я принимаю от пользователя, в файл. Я пробовал использовать write()метод, и он записывает в файл. Но когда я открываю файл, я вижу прямоугольники вместо строки. Строка представляет собой только одно слово переменной длины. Является ли...

87
Что именно означает «Objective-C - это надмножество C более строго, чем C ++»?

Из того, что я там прочитал: Почему Objective-C не очень популярен за пределами сообщества Apple? Objective-C - это надмножество C (на самом деле намного более строго, чем C ++), поэтому проблема обратной совместимости не возникает. Все, что вы можете делать в C, вы можете делать в Objective-C....

87
std :: array против производительности массива

Если я хочу построить очень простой массив, например int myArray[3] = {1,2,3}; Должен ли я использовать std::arrayвместо этого? std::array<int, 3> a = {{1, 2, 3}}; В чем преимущества использования std :: array перед обычными? Он более производительный? Просто проще обрабатывать копирование /...

87
Есть ли законное использование void *?

Есть ли законное использование void*в C ++? Или это было введено, потому что это было в C? Просто резюмирую свои мысли: Ввод : если мы хотим разрешить несколько типов ввода, мы можем перегрузить функции и методы, в качестве альтернативы мы можем определить общий базовый класс или шаблон (спасибо,...

87
Взаимодействие с классами C ++ из Swift

У меня есть значительная библиотека классов, написанных на C ++. Я пытаюсь использовать их через какой-то тип моста в Swift, а не переписывать их как код Swift. Основная мотивация заключается в том, что код C ++ представляет собой базовую библиотеку, которая используется на нескольких платформах....

87
Почему printf («% f», 0); дать неопределенное поведение?

Заявление printf("%f\n",0.0f); печатает 0. Однако заявление printf("%f\n",0); печатает случайные значения. Я понимаю, что проявляю какое-то неопределенное поведение, но не могу понять почему. Значение с плавающей запятой, в котором все биты равны 0, по-прежнему допустимо floatсо значением 0....

87
std :: ignore со структурированными привязками?

Прелюдия: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z представит синтаксис для структурированных привязок, который позволит писать вместо int a, b, c; std::tie(a, b, c) = f(); что-то вроде auto [a, b, c] = f(); Однако std::tieтакже можно указать...

87
Что такое руководства по выбору шаблонов и когда их следует использовать?

Стандарт C ++ 17 представляет «руководства по выводам шаблонов». Я так понимаю, они как-то связаны с новым выводом аргументов шаблона для конструкторов, представленным в этой версии стандарта, но я еще не видел простого объяснения в стиле FAQ, что они собой представляют и для чего они нужны. Что...

87
Надежны ли экспериментальные возможности современного C ++ для долгосрочных проектов?

У меня есть проект, который в настоящее время использует C ++ 11/14, но для этого требуется что-то вроде того std::filesystem, что доступно только в C ++ 17, и, следовательно, у меня нет возможности его использовать. Однако я вижу, что в моем текущем компиляторе он доступен как...

86
Как я могу «не использовать» пространство имен?

Одна из капризов моей системы разработки (Codegear C ++ Builder) заключается в том, что некоторые из автоматически сгенерированных заголовков настаивают на том, чтобы ... using namespace xyzzy ... в них, которые влияют на мой код, когда я меньше всего этого хочу или ожидаю. Есть ли способ как-то...

86
Что делает унарный плюс?

Что делает унарный плюс? Есть несколько определений, которые я нашел ( здесь и здесь ), но я до сих пор не знаю, для чего они будут использоваться. Похоже, он ничего не делает, но для этого есть причина, верно?...

86
Копировать значения карты в вектор в STL

В данный момент прорабатываю эффективный STL. Правило 5 предполагает, что обычно предпочтительнее использовать функции-члены диапазона вместо их одноэлементных аналогов. В настоящее время я хочу скопировать все значения на карте (т.е. мне не нужны ключи) в вектор. Как лучше всего это сделать?...

86
Инвертирование матрицы 4x4

Я ищу пример реализации кода о том, как инвертировать матрицу 4x4. Я знаю, что есть гауссовское устранение, разложение LU и т. Д., Но вместо того, чтобы смотреть на них подробно, я просто ищу код для этого. В идеале язык C ++, данные доступны в виде массива из 16 чисел с плавающей запятой в...

86
функция pthread из класса

Скажем, у меня есть такой класс, как class c { // ... void *print(void *){ cout << "Hello"; } } И тогда у меня есть вектор c vector<c> classes; pthread_t t1; classes.push_back(c()); classes.push_back(c()); Теперь я хочу создать тему на c.print(); И следующее дает мне проблему ниже:...