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

137
Зачем использовать #ifndef CLASS_H и #define CLASS_H в файле .h, а не в .cpp?

Я всегда видел, как люди пишут class.h #ifndef CLASS_H #define CLASS_H //blah blah blah #endif Вопрос в том, почему они не делают этого для файла .cpp, который содержит определения для функций класса? Допустим, у меня есть main.cppи main.cppвключает class.h. class.hФайл не includeчто - нибудь, так...

137
Не удается открыть файл включения «afxres.h» в VC2010 Express

Я пытаюсь скомпилировать старый проект с использованием VS Express 2010, но я получаю эту ошибку: фатальная ошибка RC1015: не удается открыть включаемый файл 'afxres.h'. из этого кода ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE...

137
Как завершить поток в C ++ 11?

Мне не нужно правильно завершать поток или заставлять его отвечать на команду «завершить». Я заинтересован в принудительном завершении потока с использованием чистого C ++...

137
Удобное объявление строк времени компиляции в C ++

Возможность создавать строки и управлять ими во время компиляции в C ++ имеет несколько полезных приложений. Хотя в C ++ можно создавать строки во время компиляции, этот процесс очень громоздкий, поскольку строку необходимо объявить как последовательность символов с переменным числом аргументов,...

136
Зачем нам нужен extern «C» {#include <foo.h>} в C ++?

Почему мы должны использовать: extern "C" { #include <foo.h> } В частности: Когда мы должны использовать это? Что происходит на уровне компилятора / компоновщика, что требует от нас его использования? Как с точки зрения компиляции / компоновки это решает проблемы, которые требуют от нас его...

136
Почему имена переменных не могут начинаться с цифр?

Некоторое время назад я работал с новым разработчиком C ++, когда он задал вопрос: «Почему имена переменных не могут начинаться с цифр?» Я не мог придумать ответ, за исключением того, что некоторые числа могут содержать текст (123456L, 123456U), и это было бы невозможно, если бы компиляторы думали,...

136
Как развернуть кортеж в аргументы функции шаблона переменной?

Рассмотрим случай шаблонной функции с переменными аргументами шаблона: template<typename Tret, typename... T> Tret func(const T&... t); Теперь у меня есть кортеж tзначений. Как мне вызвать, func()используя значения кортежа в качестве аргументов? Я читал об bind()объекте функции с...

136
Как delete [] знает, что это массив?

Хорошо, я думаю, что мы все согласны с тем, что то, что происходит со следующим кодом, не определено, в зависимости от того, что передано, void deleteForMe(int* pointer) { delete[] pointer; } Указатель может быть разного рода, поэтому выполнение безусловного delete[]для него не определено. Тем не...

136
Определение 32 против 64 бит в C ++

Я ищу способ надежно определить, компилируется ли код C ++ в 32 против 64 бит. Мы придумали то, что мы считаем разумным решением с использованием макросов, но нам было любопытно узнать, могут ли люди подумать о случаях, когда это может дать сбой, или есть лучший способ сделать это. Обратите...

136
На каких платформах есть что-то кроме 8-битного символа?

Время от времени кто-то на SO указывает, что char(иначе, «байт») не обязательно 8 бит . Кажется, что 8-битный charпочти универсален. Я бы подумал, что для основных платформ необходимо иметь 8-битную версию, charчтобы обеспечить ее жизнеспособность на рынке. И сейчас, и исторически, какие платформы...

136
Какова цель использования -pedantic в компиляторе GCC / G ++?

Эта записка говорит: -ansi: указывает компилятору реализовать опцию языка ANSI. Это отключает определенные «функции» GCC, которые несовместимы со стандартом ANSI. -pedantic: используется в сочетании с -ansi, это говорит компилятору строго придерживаться стандарта ANSI, отклоняя любой код, который...

136
Как определить, является ли строка числом с помощью C ++?

У меня было немало проблем при попытке написать функцию, которая проверяет, является ли строка числом. Для игры, которую я пишу, мне просто нужно проверить, является ли строка из файла, который я читаю, числом (таким образом я буду знать, является ли это параметром). Я написал следующую функцию,...

136
Методы стирания типа

(Под стиранием типов я имею в виду скрытие некоторой или всей информации о типах, относящейся к классу, что-то вроде Boost.Any .) Я хочу овладеть методами стирания типов, а также делиться теми, о которых я знаю. Я надеюсь найти какую-то сумасшедшую технику, о которой кто-то подумал в свой самый...

136
Системы сборки C ++ - Что использовать? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 4 года назад . Улучшить этот вопрос Я смотрю на запуск нового проекта на C ++...

136
Новый синтаксис «= default» в C ++ 11

Я не понимаю, зачем мне это делать: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Почему бы просто не сказать: S() {} // instead of S() = default; зачем вводить для этого новый

136
Почему функции C не могут быть искажены по имени?

Недавно у меня было интервью, и был задан один вопрос: в чем смысл использования extern "C"кода на C ++? Я ответил, что это использование функций C в коде C ++, так как C не использует искажение имен. Меня спросили, почему C не использует искажение имен и, честно говоря, я не мог ответить. Я...

135
Проверьте, имеет ли класс функцию-член заданной подписи

Я прошу уловку с шаблоном, чтобы определить, есть ли у класса конкретная функция-член данной подписи. Проблема похожа на проблему, указанную здесь http://www.gotw.ca/gotw/071.htm, но не то же самое: в пункте книги Саттера он ответил на вопрос, что класс C ДОЛЖЕН ПРЕДОСТАВЛЯТЬ функцию-член с...

135
C ++ 0x не имеет семафоров? Как синхронизировать потоки?

Правда ли, что C ++ 0x придет без семафоров? Уже есть несколько вопросов о переполнении стека относительно использования семафоров. Я использую их (семафоры posix) все время, чтобы позволить потоку ожидать какого-то события в другом потоке: void thread0(...) { doSomething0(); event1.wait(); ... }...