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

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

7
Определение целочисленных членов static const в определении класса
Я понимаю, что C ++ позволяет определять статические константные члены внутри класса, если это целочисленный тип. Почему же тогда следующий код выдает ошибку компоновщика? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout << test::N << "\n"; std::min(9, test::N); } …

5
Почему rand ()% 6 смещен?
Читая, как использовать std :: rand, я нашел этот код на cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Что не так с выражением справа? Пробовал и работает отлично.
109 c++  random  std 

5
Есть ли онлайн-программа для разборки имен для C ++? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 4 года назад . Уточните этот вопрос Я получаю довольно длинную и запутанную ошибку ссылки, и мне бы очень понравилось, …
109 c++  demangler 


4
Как мне сделать полностью статически связанный .exe с Visual Studio Express 2005?
В настоящее время я предпочитаю среду C ++ - бесплатную и в значительной степени превосходную версию Microsoft Visual Studio 2005 Express. Время от времени я отправлял другим людям файлы с расширением .exe, что давало хорошие результаты. Однако недавно я сделал тревожное открытие, что приятные результаты были основаны на большем удаче, …

7
Другой результат с плавающей запятой при включенной оптимизации - ошибка компилятора?
Приведенный ниже код работает в Visual Studio 2008 с оптимизацией и без нее. Но работает только на g ++ без оптимизации (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t …
109 c++  optimization  g++  c++-faq 

5
LPCSTR, LPCTSTR и LPTSTR
Какая разница между LPCSTR, LPCTSTRи LPTSTR? Зачем это нужно делать, чтобы преобразовать строку в переменную LV/ _ITEMstructure pszText: LV_DISPINFO dispinfo; dispinfo.item.pszText = LPTSTR((LPCTSTR)string);
109 c++  windows  visual-c++  mfc 


3
Почему std :: getline () пропускает ввод после форматированного извлечения?
У меня есть следующий фрагмент кода, который запрашивает у пользователя свое имя и статус: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; …
109 c++  input  iostream  istream  c++-faq 

6
(A + B + C) ≠ (A + C + B) и переупорядочение компилятора
Добавление двух 32-битных целых чисел может привести к целочисленному переполнению: uint64_t u64_z = u32_x + u32_y; Этого переполнения можно избежать, если сначала преобразовать одно из 32-битных целых чисел или добавить к 64-битному целому числу. uint64_t u64_z = u32_x + u64_a + u32_y; Однако, если компилятор решит изменить порядок добавления: uint64_t …

6
Что делает непредсказуемым такое использование указателей?
В настоящее время я изучаю указатели, и мой профессор привел этот фрагмент кода в качестве примера: //We cannot predict the behavior of this program! #include <iostream> using namespace std; int main() { char * s = "My String"; char s2[] = {'a', 'b', 'c', '\0'}; cout << s2 << endl; …
108 c++  pointers 

6
Почему можно возвращать «вектор» из функции?
Пожалуйста, обратите внимание на этот код. Я видел этот тип кода несколько раз. words- локальный вектор. Как можно вернуть его из функции? Можем ли мы гарантировать, что он не умрет? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } …

11
Ошибка компиляции GCC с кодом> 2 ГБ
У меня огромное количество функций на общую сумму около 2,8 ГБ объектного кода (к сожалению, нет другого пути, научные вычисления ...) Когда я пытаюсь связать их, я получаю (ожидаемые) relocation truncated to fit: R_X86_64_32Sошибки, которые я надеялся обойти, указав флаг компилятора -mcmodel=medium. Все библиотеки, которые связаны, кроме того, что я …
108 c++  c  gcc  compiler-errors 

2
Более быстрое завершение кода с помощью clang
Я исследую потенциальное ускорение завершения кода при использовании механизма завершения кода clang. Описанный ниже поток - это то, что я нашел в rtags Андерса Баккена. Единицы перевода анализируются демоном, отслеживающим файлы на предмет изменений. Это делается с помощью вызываемых clang_parseTranslationUnitи связанных функций ( reparse*, dispose*). Когда пользователь запрашивает завершение для …

8
Как BLAS обеспечивает такую ​​исключительную производительность?
Из любопытства я решил сравнить свою функцию умножения матриц с реализацией BLAS ... Результат меня, мягко говоря, удивил: Заказная реализация, 10 попыток умножения матриц 1000x1000: Took: 15.76542 seconds. Внедрение BLAS, 10 попыток умножения матриц 1000x1000: Took: 1.32432 seconds. Здесь используются числа с плавающей запятой одинарной точности. Моя реализация: template<class ValT> …
108 c++  fortran 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.