戻り値の型としてstructを使用するコードがあります。私は構造体のnullインスタンスをエラーとして返したいが、エラーではないときは構造体の逆参照型を返す。関数全体で1つのリターンのみを使用してこれを行うにはどうすればよいですか?はい、それは2つのリターンを使用するのは非常に簡単ですが、私は1つのリターンを使用する必要があります。データ型に1つのreturnを使用してエラーを返すにはどうすればよいですか?
答えて
”戻り誤差として構造体のヌルインスタンスが、構造体の間接参照のバージョンではないエラーを返します。
return (is_error? S() : *pointer_to_struct);
ヌルインスタンスでデフォルトを意味しない場合
は、あなたは(Boostライブラリからの)C++ 17std::optional
、または
boost::optional
を使用することができ、1に初期化。または、あなた自身の素早く汚いものを巻くことができます
Optional
。あなたは効率性を無視することができたとき、それはまったく難しいことではありません。
template< class Wrapped >
class Optional
{
private:
vector<Wrapped> data_;
public:
auto is_empty() const -> bool { return data_.empty(); }
auto ref() -> Wrapped& { return data_.at(0); }
auto ref() const -> Wrapped const& { return data_.at(0); }
Optional() {}
Optional(Wrapped value) { data_.push_back(move(value)); }
};
免責事項:コードは、コンパイラの手で触れていません。
私はプログラミングに慣れていません。 is_errorはC++のマクロでビルドされていますか?もしそうなら、どんなヘッダーですか?ありがとう! – teenHere
@teenHere:いいえ、組み込みではありません。それは単なる例です。 –
機能全体で1回のリターンを使用してこれを行うにはどうすればよいですか?あなたは、例えば、C++ 17(又はBoost.Optional)のでstd::optionalを使用することができ
std::optional<some_struct> foo() {
if (...)
return something;
else // error
return {};
}
その後、
if (auto result = foo()) {
// use result.value() to get some_struct
// ...
} else {
// error
}
'std :: C++ 17 'よりも低い場合、[' boost :: qptional'](http://www.boost.org/doc/libs/1_61_0/libs/optional/doc/html/)を使うことができます。 index.html)(ヘッダーのみのlib)。 –
- 1. Pythonを使用してデータを1行に整理するにはどうすればよいですか?
- 2. Hibernateを使用してpostgresql jsonデータ型をマップするにはどうすればよいですか?
- 3. flowtypeコマンドを使用して推論型データを取得するにはどうすればよいですか?
- 4. メソッドからクロージャを使用してデータを返すにはどうすればよいですか?
- 5. インターフェイスでreturnステートメントを持つメソッドを使用するにはどうすればよいですか?
- 6. クエリでレコードを1つだけ返すようにするにはどうすればよいですか?私は次のエラーを受信してい
- 7. 1つのファイルに対してmod_rewriteを使用するにはどうすればよいですか?
- 8. 私はPythonの1つの変数に2つのデータ型を使用しようとしていますか?
- 9. 2つのBelongsToを使用してデータにアクセスするにはどうすればよいですか?
- 10. データ型名についてのみsparqlクエリを作成するにはどうすればよいですか?
- 11. actionscript(flex)を使用して1つのチャンクファイルを作成するにはどうすればよいですか?
- 12. swiftlintを使用して1つのファイルをリントするにはどうすればよいですか?
- 13. ポイントクラウドライブラリを使用して1つのフレームをキャプチャするにはどうすればよいですか?
- 14. リソースルートを使用して1つの行を削除するにはどうすればよいですか?
- 15. java.util.Set型のデータをibatisを使用して型セットの列を持つSQLデータベースに挿入するにはどうすればよいですか?
- 16. ASP.NET MVCのSelectListで使用するEntityCollection型のオブジェクトを返すにはどうすればよいですか?
- 17. ノード型の値を返すにはどうすればよいですか?
- 18. アクセスクエリエラー - Nullデータ型とバリアントデータ型 - このエラーを修正するにはどうすればよいですか?
- 19. SQLAlchemyを使用して列を1つだけ選択するにはどうすればよいですか?
- 20. Apache Camelを使用して1つのファイルを読み込むにはどうすればよいですか?
- 21. 2つのフィールドに1つのdaterange pickerプラグインを使用するにはどうすればよいですか?
- 22. BIT(...)データ型の列にsubstr(...)を使用するにはどうすればよいですか?
- 23. 動的列に使用するデータ型を定義するにはどうすればよいですか?
- 24. 1つのアクティビティで2つのスクロールビューを使用するにはどうすればよいですか?
- 25. 1つのビューで2つのモデルを使用するにはどうすればよいですか?
- 26. 1つのアプリケーションで2つのデータリストを使用するにはどうすればよいですか?
- 27. 2つのテーブルのデータを1つのカーソルに結合するにはどうすればよいですか?
- 28. ハイチャートの2つのデータを1つのチャートに結合するにはどうすればよいですか?
- 29. oracleでCLOBまたはNCLOBデータ型を使用するにはどうすればよいですか?
- 30. WHILE LOOP内のMOD関数をPLS_INTEGERデータ型で使用するにはどうすればよいですか?
あなたがやろうとしているものの例を追加した場合、それは良いだろう。 – HazemGomaa