XCode не распознает достаточно очевидные синтаксические ошибки C ++ - PullRequest
1 голос
/ 01 июня 2011

Я только что обнаружил, что некоторые явные синтаксические ошибки не были обнаружены XCode (версия 3.2.3). Мое приложение использует комбинацию Obj-C (для интерфейса) и C ++ (для остальной части приложения). Вот пример:

class Bike
{
   Bike (Bike &copy, boolean v) { .. }
   Bike (boolean v) { .. }
}
class Data
{
   static *Bike findBikeByID (int id) { .. }
}

рассматриваемый звонок выглядит так:

void function ()
{
   Bike item = Data::findBikeByID (123); // error

   // correct code (Data::findBikeByID returns a pointer, not a reference)
   // Bike * item = Data::findBikeByID (123); // correct 
}

Другая ошибка, о которой не удалось сообщить:

void function (Bike *input)
{
  Bike *b = new Bike (*input); // error, should pass 2 arguments 
}

Bike (Bike & copy, boolean v) принимает два параметра в конструкторе. Однако он может быть перепутан со вторым конструктором Bike (логическим), но даже если я укажу:

Bike *b = new Bike ((Bike &)*input);

он не замечает никаких проблем.

Есть идеи, почему это происходит? Существуют ли какие-либо настройки компилятора, управляющие этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...