0
ответов

Является ли `* - p` действительно допустимым (правильно сформированным) в C ++ 03

Мне интересно узнать об этом фрагменте кода: int main () {char * p; char arr [100] = "Привет"; if ((p = arr) [0] == 'H') // делаем вещи } Действительно ли этот код правильно сформирован в C ++ 03? Мой аргумент ...
вопрос задан: 13 January 2012 07:45
0
ответов

Возвращаемая структура, содержащая массив

Следующие простые ошибки кода в gcc 4.4.4 #include typedef struct Foo Foo; struct Foo {char f [25]; }; Foo foo () {Foo f = {"Привет, мир!"}; return f; } int ...
вопрос задан: 8 January 2012 02:11
0
ответов

Объявление друга специализации шаблона терпит неудачу

Следующий код, содержащий объявление друга, не работает с указанной ошибкой (см. Http://ideone.com/Kq5dy): template void foo () {} template класс A {void foo (); ...
вопрос задан: 23 December 2011 07:22
0
ответов

Время жизни объекта истекло до вызова деструктора?

Я не понимаю этого: 3.8 / 1 "Время жизни объекта типа T заканчивается, когда: - если T - это тип класса с нетривиальным деструктором (12.4), запускается вызов деструктора или - хранилище, которое ...
вопрос задан: 23 December 2011 01:50
0
ответов

Повторяющиеся определения типов - недопустимы в C, но допустимы в C ++?

Мне нужна стандартная справочная информация, почему следующий код вызывает предупреждение о соответствии в C (проверено с помощью gcc -pedantic; "переопределение typedef"), но подходит для C ++ (g ++ -pedantic): typedef struct Foo ...
вопрос задан: 21 December 2011 19:03
0
ответов

Понимание запутанной грамматики typedef

Рассмотрим следующий фрагмент кода typedef int type; int main () {тип * тип; // почему это разрешено? type * k; // какой тип? } Я получаю сообщение об ошибке «k» не объявлено в этой области. Компилятор ...
вопрос задан: 13 December 2011 12:31
0
ответов

Распределитель памяти C и строгий псевдоним

, даже после того, как я немного прочитал о правилах строгого псевдонима, я все еще запутался. Насколько я понял, невозможно реализовать разумный распределитель памяти, который следует этим правилам, ...
вопрос задан: 13 December 2011 08:31
0
ответов

Неоднозначное выражение доступа к члену: отклоняет ли Clang действительный код?

У меня есть код, который для целей этого вопроса сводится к шаблону {{ 1}} class TemplateClass: public T {public: void method () {} template static ...
вопрос задан: 10 December 2011 03:50
0
ответов

Существует ли заметная разница при использовании `unsigned long` и `unsigned int` в C (или C++), когда оба типа имеют ширину 32 бита?

Я использую MPC56XX (встроенные системы) с компилятором, для которого int и long имеют ширину 32 бита. В требуемом программном пакете мы имели следующие определения для типов шириной 32 бита: ...
вопрос задан: 8 December 2011 12:16
0
ответов

Указатель на член, являющийся ссылкой, недопустим?

Допустим, у меня есть: // Все это допустимо в C ++ 11. struct Foo {int i = 42; int & j = i; }; // Возьмем указатель на член "j". auto b = & Foo :: j; // Компилятор здесь недоволен // ...
вопрос задан: 1 December 2011 07:21
0
ответов

Что такое "байт" в C / C++

Например, вот ссылка на fread: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); Читает массив из count элементов, каждый из которых имеет размер "size байт".... Так как ...
вопрос задан: 28 November 2011 13:26
0
ответов

Is есть ли полезный случай использования оператора switch без фигурных скобок?

В H & S5 я столкнулся с «самым причудливым» оператором switch (8.7.1, стр. 277), не использующим фигурные скобки. Вот пример: switch (x ) по умолчанию: if (prime (x)) case 2: case 3: case 5: case 7: ...
вопрос задан: 14 November 2011 06:46
0
ответов

Динамические библиотеки нарушают стандарт C ++?

Стандарт C ++ 3.6.3 гласит, что деструкторы для инициализированных объектов статической длительности вызываются в результате возврата из main и в результате вызова exit. В Windows у вас есть FreeLibrary и ...
вопрос задан: 12 November 2011 05:03
0
ответов

Может ли разница между типами констант 32768 и 0x8000 иметь значение?

Стандарт определяет, что шестнадцатеричные константы, такие как 0x8000 (больше, чем помещается в целое число со знаком), являются беззнаковыми (точно так же, как восьмеричные константы), тогда как десятичные константы, такие как 32768 подписаны долго. (.
вопрос задан: 9 November 2011 18:09
0
ответов

почему изменчивый объект не может вызывать энергонезависимый член function

Почему изменчивый объект не может вызвать энергонезависимую функцию-член? В случае с константой имеет смысл, что вызов неконстантной функции-члена нарушает константность объекта и, следовательно, это ...
вопрос задан: 8 November 2011 10:38
0
ответов

Есть ли точка последовательности между инициализациями членов структуры?

Есть ли точка последовательности между выражениями инициализации членов структуры? Например, хорошо ли определено, что приведенный ниже код всегда будет печатать «a, b»? #include typedef struct ...
вопрос задан: 5 November 2011 07:37
0
ответов

Насколько неопределенным является неопределенное поведение?

Я не уверен, что понимаю степень, до которой неопределенное поведение может поставить программу под угрозу. Допустим, у меня есть такой код: #include int main() { int v = 0; scanf("%d", &...
вопрос задан: 1 November 2011 00:42
0
ответов

с перегрузкой операторов постфикса и префикса

рассмотрите следующий код #include с использованием пространства имен std; class Digit {private: int m_digit; {{1} } общедоступные: Цифра (int ndigit = 0) {m_digit = ndigit; } ...
вопрос задан: 12 October 2011 12:55
0
ответов

CONSTEXPR undefined поведение

Я экспериментировал с constexpr. На моем тестовом компилятере (G ++ 4.6) это не скомпилируется с ошибкой о выходе из оценок. Требуется ли компилятор, чтобы определить это в компиляционном времени? #include <...
вопрос задан: 14 September 2011 18:57
0
ответов

node.js сделать запрос и ответ глобальными для HTTP-сервера?

Я только что начал на node.js и прошел через http://nodebeginner.org/index.html. Отличное начало учебника, но я действительно хочу знать, можно ли сделать и запрос, и ответ «глобально», так что любой модуль...
вопрос задан: 31 August 2011 20:58
0
ответов

Могу ли я по умолчанию использовать частный конструктор в теле класса или нет?

GCC 4.5 не позволяет мне делать это: class foo { общедоступные: foo () = по умолчанию; частный: foo (foo const &) = по умолчанию; foo & operator = (foo const &) = по умолчанию; }; Он жалуется, что: error: ...
вопрос задан: 29 August 2011 00:20
0
ответов

Существуют ли хорошо известные «профили» стандарта C?

Я пишу код C, который делает определенные предположения относительно реализация, например: char - 8 бит. целочисленные типы со знаком - это два дополнения. >> Знаки целых чисел со знаком расширяются. целочисленное деление ...
вопрос задан: 24 August 2011 14:53
0
ответов

Неопределенное имя внедренного класса не является ошибкой

То, что я прочитал в стандарте C ++ о введенных именах классов, противоречит (как я это вижу) поведению примера программы, которую я представлю в ближайшее время. Вот что я прочитал: Из 3.4 (параграф 3) ...
вопрос задан: 11 August 2011 11:28
0
ответов

Запутанный язык в спецификации strtol и др.

Спецификация strtol концептуально делит входную строку на «начальные пробелы», «предметную последовательность» и «конечную строку», и определяет "подчиненную последовательность" как: самую длинную начальную ...
вопрос задан: 14 July 2011 23:17
0
ответов

есть ли разница между && и & с bool (s)?

В C ++ есть ли разница между выполнением && (логическим) и & (побитовым) между bool (s)? bool val1 = foo (); bool val2 = bar (); bool case1 = val1 & val2; bool case2 = val1 && ...
вопрос задан: 5 July 2011 02:24
0
ответов

Почему статический метод переопределяет нестатический метод базового класса?

struct B {void foo () {} }; struct D: B {с использованием B :: foo; static void foo () {} }; int main () {D obj; obj.foo (); // вызывает D :: foo ()!? } Метод-член и статический метод-член ...
вопрос задан: 16 June 2011 06:39
0
ответов

Почему «с использованием пространства имен X»; не допускается внутри класса / уровня структуры?

class C {using namespace std; // ошибка }; пространство имен N {с использованием пространства имен std; // ОК } int main () {используя пространство имен std; // ОК } Edit: хотите узнать мотивацию, стоящую за этим.
вопрос задан: 13 June 2011 05:10
0
ответов

Почему запрещено открывать несколько пространств имен за один раз?

Можно использовать пространство имен foo :: bar; (т.е. использовать внутреннее пространство имен без использования th e внешнее пространство имен сначала / вообще), почему стандарт запрещает делать следующее? namespace foo :: bar {...
вопрос задан: 12 June 2011 15:22
0
ответов

Почему при отсутствии оператора return не возникает ошибка компилятора?

В отличие от Java, в C / C ++ допускается следующее: int * foo () {if (x) return p; // что, если сюда дойдет контроль } Это часто вызывает сбои и затрудняет устранение проблем. Почему стандарт не применяет ...
вопрос задан: 7 June 2011 08:22
0
ответов

Почему виртуальная функция не может быть нереализована при выделении с 'новым'?

struct A {виртуальная void foo (); // неиспользуемая и нереализованная виртуальная пустая панель () {} }; int main () {Объект; // нормально obj.bar (); // <- добавлено это издание A * pm = (A *) malloc (sizeof (A)) ...
вопрос задан: 4 June 2011 02:15