шаблон и явный конструктор [дубликат]

Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            myCallback(response);
        }
    });

    return result;
}

function myCallback(response) {
    // Does something.
}
6
задан BRabbit27 6 April 2015 в 13:47
поделиться

2 ответа

Вы определили явный конструктор копирования, но функции

Vector Vector::operator+(const Vector& v) const

и

Vector Vector::operator-(const Vector& v) const

должны возвращаться по значению и больше не могут из-за explicit (в Другими словами, они не могут скопировать tmp в возвращаемый объект).

Я также проверял новые вещи с C ++ 11 и обнаружил, что могу объявить мой конструктор как движущийся конструктор explicit Vector(const Vector&& v);, и код компилируется просто отлично. Если я это сделаю, мне нужно иметь как скопировать, так и переместить конструкторы?

Не уверен, что я понимаю, что вы имеете в виду здесь. У вас будет такая же проблема, если вы объявите только явный конструктор перемещения (что не позволит компилятору генерировать конструктор копии по умолчанию). Я не могу создать «компилируемый» код.

5
ответ дан vsoftco 27 August 2018 в 02:12
поделиться

Возврат объекта по значению требует выполнения неявной конструкции копии. Создание явного исключения конструктора копии предотвращает это.

Это так, если компилятор не хочет ссылаться на конструктор копирования (например, оптимизацию возвращаемого значения).

0
ответ дан Peter 27 August 2018 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: