Такая платформа, по своей природе, не могла использовать в своих интересах определенные для iPhone функции как жесты мультипальца или акселерометр. Это также, вероятно, освободило бы условия SDK Apple.
Как andyuk предложенный, рассмотрите запись веб-приложения. Основные функции, такие как вызов кого-то могут быть полученными доступ тот путь.
Из другого комментария: «Поэтому по умолчанию я не должен полагаться на него (так как это может зависеть от компилятора)»
Нет, это не зависит от компилятора, практически в любом случае. Любой компилятор, достойный песчинки, не будет тратить время на построение A, а затем на его копирование.
В стандарте прямо говорится, что полностью приемлемо для T = x;
быть эквивалентом говоря T (x);
. (§12.8.15, стр. 211) Выполнение этого с T (T (x))
, очевидно, излишне, поэтому он удаляет внутренний T
.
Чтобы получить желаемое поведение, вы заставите компилятор по умолчанию построить первый A:
A a;
// A is now a fully constructed object,
// so it can't call constructors again:
a = A(5);
Здесь у вас есть инициализация копирования из a
из временного A (5)
. Реализация позволила пропустить здесь вызов конструктора копирования в соответствии со стандартом C ++ 12.2 / 2.
A a = A(5);
Эта строка эквивалентна
A a(5);
Несмотря на то, что Внешний вид функционального стиля, первая строка просто создает a
с аргументом 5. Никакого копирования или временных файлов не требуется. Из стандарта C ++, раздел 12.1.11:
Преобразование функционального типа нотации (5.2.3) может использоваться для создания новых объектов этого типа. [ Обратите внимание синтаксис выглядит как явный вызов конструктора. —В конце примечания]