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

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

15
Шаблоны C ++ по Тьюрингу?
Мне сказали, что система шаблонов в C ++ является полной по Тьюрингу во время компиляции. Об этом упоминается в этом посте, а также в Википедии. . Можете ли вы привести нетривиальный пример вычисления, использующего это свойство? Полезен ли этот факт на практике?


4
Модули C ++ - почему они были удалены из C ++ 0x? Вернутся ли они позже?
Я только что обнаружил этот старый черновик C ++ 0x о модулях в C ++ 0x. Идея заключалась в том, чтобы выйти из текущей системы .h / .cpp, написав только файлы .cpp, которые затем будут генерировать файлы модулей во время компиляции, которые затем, в свою очередь, будут использоваться другими файлами …

2
Что означает токен «……»? т.е. оператор двойного многоточия в пакете параметров
Просматривая текущую реализацию новых заголовков C ++ 11 в gcc, я наткнулся на токен «......». Вы можете проверить, что следующий код компилируется нормально [через ideone.com]. template <typename T> struct X { /* ... */ }; template <typename T, typename ... U> struct X<T(U......)> // this line is the important one …

8
Как я могу создать Min stl priority_queue?
Очередь с приоритетом stl по умолчанию - максимальная (функция Top возвращает самый большой элемент). Скажем, для простоты, это очередь приоритетов значений типа int.
110 c++  stl  priority-queue 


11
Понимание значения термина и концепции - RAII (Resource Acquisition is Initialization)
Не могли бы вы, разработчики C ++, дать нам хорошее описание того, что такое RAII, почему он важен и может ли он иметь какое-либо отношение к другим языкам? Я сделать немного знаю. Я считаю, что это означает «Приобретение ресурсов - это инициализация». Однако это имя не согласуется с моим (возможно, …

3
В чем принципиальная разница между MFC и ATL?
Предполагая, что я использую их только для «обычных» программ с графическим интерфейсом (без COM, без ActiveX, ничего особенного), в чем заключается принципиальное различие между ATL и MFC, которое я увижу, чтобы понять, какой из них использовать? Я сделал несколько поисков в Интернете, но в конечном итоге ни один из ответов …
110 c++  visual-c++  mfc  atl 

8
Malloc vs new - разные обивки
Я просматриваю чужой код C ++ для нашего проекта, который использует MPI для высокопроизводительных вычислений (10 ^ 5 - 10 ^ 6 ядер). Код предназначен для обеспечения связи между (потенциально) разными машинами на разных архитектурах. Он написал комментарий, в котором говорится примерно следующее: Обычно мы использовали бы newи delete, но …

30
В C / C ++ каков самый простой способ изменить порядок бит в байте?
Хотя есть несколько способов изменить порядок следования битов в байтах, мне любопытно, что «проще всего» реализовать разработчику. Под реверсом я подразумеваю: 1110 -> 0111 0010 -> 0100 Это похоже, но не дублирует этот вопрос PHP. Это похоже, но не дублирует этот вопрос C. Этот вопрос касается самого простого метода, который …
110 c++  c  bit-manipulation 

10
Номер строки C / C ++
Могу ли я получить номер строки в компиляторах C / C ++ в целях отладки ? (стандартный способ или специальные способы для определенных компиляторов) например if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic compilation)

5
неопределенная ссылка на `WinMain @ 16 '
Когда я пытаюсь создать программу с использованием Eclipse CDT, я получаю следующее: /mingw/lib/libmingw32.a(main.o):main.c:(.text+0x106): неопределенная ссылка на `WinMain @ 16 Это почему? И как я могу решить эту проблему?
110 c++  eclipse  eclipse-cdt 

5
std :: next_permutation Объяснение реализации
Мне было любопытно, как это std:next_permutationбыло реализовано, поэтому я извлек gnu libstdc++ 4.7версию и обработал идентификаторы и форматирование, чтобы создать следующую демонстрацию ... #include <vector> #include <iostream> #include <algorithm> using namespace std; template<typename It> bool next_permutation(It begin, It end) { if (begin == end) return false; It i = begin; …

15
Использование пространства имен std
Кажется, существуют разные взгляды на использование слова using в отношении пространства имен std. Некоторые говорят использовать ' using namespace std', другие говорят, что нет, а вместо этого используют префикс std-функций, которые должны использоваться с ' std::', в то время как другие говорят, что используйте что-то вроде этого: using std::string; using …
110 c++  namespaces 

12
Как реализованы виртуальные функции и vtable?
Все мы знаем, что такое виртуальные функции в C ++, но как они реализованы на глубоком уровне? Можно ли изменить vtable или даже получить к ней прямой доступ во время выполнения? Существует ли vtable для всех классов или только для тех, у которых есть хотя бы одна виртуальная функция? Имеют …

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