戻り値の型として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. flowtypeコマンドを使用して推論型データを取得するにはどうすればよいですか?
- 3. Hibernateを使用してpostgresql jsonデータ型をマップするにはどうすればよいですか?
- 4. インターフェイスでreturnステートメントを持つメソッドを使用するにはどうすればよいですか?
- 5. 1つのファイルに対してmod_rewriteを使用するにはどうすればよいですか?
- 6. 私はPythonの1つの変数に2つのデータ型を使用しようとしていますか?
- 7. 2つのBelongsToを使用してデータにアクセスするにはどうすればよいですか?
- 8. データ型名についてのみsparqlクエリを作成するにはどうすればよいですか?
- 9. actionscript(flex)を使用して1つのチャンクファイルを作成するにはどうすればよいですか?
- 10. swiftlintを使用して1つのファイルをリントするにはどうすればよいですか?
- 11. ポイントクラウドライブラリを使用して1つのフレームをキャプチャするにはどうすればよいですか?
- 12. アクセスクエリエラー - Nullデータ型とバリアントデータ型 - このエラーを修正するにはどうすればよいですか?
- 13. ASP.NET MVCのSelectListで使用するEntityCollection型のオブジェクトを返すにはどうすればよいですか?
- 14. SQLAlchemyを使用して列を1つだけ選択するにはどうすればよいですか?
- 15. Apache Camelを使用して1つのファイルを読み込むにはどうすればよいですか?
- 16. 2つのフィールドに1つのdaterange pickerプラグインを使用するにはどうすればよいですか?
- 17. BIT(...)データ型の列にsubstr(...)を使用するにはどうすればよいですか?
- 18. 動的列に使用するデータ型を定義するにはどうすればよいですか?
- 19. 2つのテーブルのデータを1つのカーソルに結合するにはどうすればよいですか?
- 20. 1つのアプリケーションで2つのデータリストを使用するにはどうすればよいですか?
- 21. 1つのアクティビティで2つのスクロールビューを使用するにはどうすればよいですか?
- 22. 1つのDjango HttpResponseで2つの変数を返すにはどうすればよいですか?
- 23. WHILE LOOP内のMOD関数をPLS_INTEGERデータ型で使用するにはどうすればよいですか?
- 24. 基本クラスのメソッドを通じて汎用型を返すにはどうすればよいですか?
- 25. return jsonオブジェクトのデコードにjqueryを使用するにはどうすればよいですか?
- 26. 関数からデータを返すにはどうすればよいですか?
- 27. マルチテーブルからjsonデータを返すにはどうすればよいですか?
- 28. cURLリクエストで返されたデータを使用するにはどうすればよいですか?
- 29. LINQを使用して、階層型XMLをPOCOにロードするにはどうすればよいですか?
- 30. 多型データ型に動的にメモリを割り当てるにはどうすればよいですか?
あなたがやろうとしているものの例を追加した場合、それは良いだろう。 – HazemGomaa