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

96
Оператор тильды в C

Я видел оператор тильды, используемый в алгоритме хеширования ELF, и мне любопытно, что он делает. (Код взят из Eternal Confused .) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; i++ ) { h = ( h << 4 ) + p[i]; g = h &...

96
Почему нет std :: stou?

В C ++ 11 добавлены новые функции преобразования строк: http://en.cppreference.com/w/cpp/string/basic_string/stoul Он включает в себя stoi (строка в int), stol (строка в long), stoll (строка в long long), stoul (строка в long без знака), stoull (строка в long без знака). Примечательна его...

96
Что такое «топор памяти»?

Я только что наткнулся на это сообщение в блоге, в котором упоминается «топание памяти»: программа на C ++, которая легко может топтать память (о чем вы, вероятно, даже не слышали, если родились в мире управляемого кода). И вообще никогда не слышал об этом! Итак, что это, топчание памяти, топчание...

96
Почему std :: initializer_list не является встроенным языком?

Почему не std::initializer_listвстроен базовый язык? Мне кажется, что это довольно важная особенность C ++ 11, но у него нет собственного зарезервированного ключевого слова (или чего-то подобного). Вместо этого initializer_listэто просто класс шаблона из стандартной библиотеки, который имеет...

96
В чем разница между концепциями и ограничениями шаблона?

Я хочу знать, каковы семантические различия между предложением полных концепций C ++ и ограничениями шаблона (например, ограничениями, появившимися в Dlang, или предложением нового облегченного концепта для C ++ 1y ). На что способны полноценные концепции, которых не могут сделать ограничения...

96
Как работает метод main () в C?

Я знаю, что есть две разные подписи для написания основного метода - int main() { //Code } или для обработки аргумента командной строки мы пишем его как- int main(int argc, char * argv[]) { //code } В C++Я знаю , что мы можем перегрузить метод, но Cкак компилятор обрабатывать эти две различные...

96
Что значит «отравить функцию» в C ++?

В самом конце выступления Скотта Шурра «Представляем constexpr» на CppCon он спрашивает: «Есть ли способ отравить функцию»? Затем он объясняет, что это можно сделать (хотя и нестандартным способом): Ввод throwв constexprфункцию Объявление неразрешенной extern const char* Ссылаясь на нерешенные...

96
Почему присвоение значения битовому полю не возвращает то же значение?

В этом сообщении на Quora я видел следующий код : #include <stdio.h> struct mystruct { int enabled:1; }; int main() { struct mystruct s; s.enabled = 1; if(s.enabled == 1) printf("Is enabled\n"); // --> we think this to be printed else printf("Is disabled !!\n"); } Как в C, так и в C ++...

96
Зачем использовать std :: make_unique в C ++ 17?

Насколько я понимаю, C ++ 14 был введен, std::make_uniqueпотому что из-за того, что порядок оценки параметров не был указан, это было небезопасно: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Объяснение: если оценка сначала выделяет память для необработанного указателя,...

96
Использует malloc для поведения int undefined до C ++ 20

Мне сказали, что следующий код имеет неопределенное поведение до C ++ 20: int *p = (int*)malloc(sizeof(int)); *p = 10; Это правда? Аргументом было то, что время жизни intобъекта не начинается до присвоения ему значения ( P0593R6 ). Для устранения проблемы newследует использовать размещение: int *p...

95
Размещение звездочки в объявлениях указателей

Недавно я решил, что мне просто нужно наконец выучить C / C ++, и есть одна вещь, которую я действительно не понимаю в указателях или, точнее, в их определении. Как насчет этих примеров: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; Теперь, насколько я...

95
Где Visual Studio ищет файлы заголовков C ++?

Я проверил копию приложения C ++ из SourceForge (HoboCopy, если вам интересно) и попытался скомпилировать его. Visual Studio сообщает мне, что не может найти конкретный файл заголовка. Я нашел файл в дереве исходников, но куда мне его поместить, чтобы он был найден при компиляции? Есть ли...

95
Управление зависимостями в стиле Maven для C ++? [закрыто]

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

95
Явное создание шаблона - когда он используется?

После нескольких недель перерыва я пытаюсь расширить и расширить свои знания о шаблонах с помощью книги « Шаблоны - полное руководство » Дэвида Вандевурда и Николая М. Йосуттиса, и в данный момент я пытаюсь понять явное создание экземпляров шаблонов. . На самом деле у меня нет проблем с механизмом...

95
Письменные версии логических операторов

Это единственное место, которое я когда-либо видел and, orи оно notуказано как фактические операторы в C ++. Когда я написал тестовую программу в NetBeans, я получил красное подчеркивание, как если бы произошла синтаксическая ошибка, и решил, что веб-сайт был неправильным, но это NetBeans, который...

95
Почему C ++ не допускает унаследованную дружбу?

Почему дружба по крайней мере необязательно наследуется в C ++? Я понимаю, что транзитивность и рефлексивность запрещены по очевидным причинам (я говорю это только для того, чтобы избежать простых ответов на часто задаваемые вопросы), но отсутствие чего-то в этом роде virtual friend class Foo;меня...