LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

Объект создаётся на стеке, я так понимаю, иначе также можешь вернуть nullptr. Можно так:

#include <utility>
#include <iostream>

std::pair<bool, int> fn(bool er)
{
	if (er)
		return {false, {}};
	else
		return {true, {}};
}

int main() {
	auto [error, data] = fn(true);
	if (!error)
		std::cout << data << std::endl;
	return 0;
}

Исправление pavlick, :

Объект создаётся на стеке, я так понимаю, иначе также можешь вернуть nullptr. Можно так:

#include <utility>
#include <iostream>

std::pair<bool, int> fn(bool er)
{
	if (er)
		return {false, {}};
	else
		return {true, {}};
}

int main() {
	auto [error, data] = fn(true);
	if (!er)
		std::cout << data << std::endl;
	return 0;
}

Исходная версия pavlick, :

Объект создаётся на стеке, я так понимаю, иначе также можешь вернуть nullptr. Можно так:

#include <utility>
#include <memory>
#include <iostream>

std::pair<bool, int> fn(bool er)
{
	if (er)
		return {false, {}};
	else
		return {true, {}};
}

int main() {
	auto [error, data] = fn(true);
	if (!er)
		std::cout << data << std::endl;
	return 0;
}