質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

Q&A

解決済

1回答

1252閲覧

命名規則 2つの値を比較して小さい方を返す関数の適した名前

mjk

総合スコア303

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

0グッド

0クリップ

投稿2020/08/09 07:07

編集2020/08/09 07:37

※追記 訂正
std::min()はint型以外の型にも対応しています
勘違いでしたすみません。

命名規則が知りたかったのですが本末転倒(std::min()使います)なので解決済みにしたいと思います。

実現したいこと

命名規則について不慣れなので皆様のご意見やアドバイスなどあればお聞かせください。
命名規則全体の話となると多岐に渡ると思いますので取り急ぎサンプルコードのchkMin()が適当な名前なのかどうかや他に良い名前があれば教えてほしいです。
(個人で使うだけならなんでも良いじゃんという意見もあると思いますがアドバイス頂ければ幸いです)
よろしくお願いします。

発生している問題点

例えばサンプルコードのchkMin()ですが~~~~std::min()がint型しか対応していないので~~他に便利な関数無いか探したのですが見つけられなかったので自作してみたのですが名前をつけようと検索してみたのですがぴったりな名前が思いつかずに迷っています。
2つの値を比較して小さい方を返す関数なので思いつく単語の候補としては、

最小値=min
比較=compare
取得=get
検査=check

getMin
compareMin
checkMin

といったものがどうかと思ったのですがブログなどによるとgetもcompareもcheckも予約だったり広義過ぎたりでおすすめしないようなことも書かれていて迷っています。

試したこと

ブログなどを検索して参考にしているのですがこれだという命名規則が見つけられずに迷っています。
参考にしたブログ
プログラミングでよく使う英単語のまとめ【随時更新】
関数名によく使われる英単語(動詞)の意味とニュアンス

サンプルコード

C++

1chkMin(const T &a, const T &b) { return a > b ? b : a; }

補足情報(FW/ツールのバージョンなど)

Win10
VSC1.47.3
C++14
gcc version 8.2.0 (Rev3, Built by MSYS2 project)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daregada

2020/08/09 07:23

> std::min()がint型しか対応していないので そんなわきゃないでしょう……ってもう回答が付いているからいいか。std::minはテンプレートを使って<演算子が使える任意の型に対して適用できるし、任意のN個の値に対して適用することもできるよ。
mjk

2020/08/09 07:26

今確認しました。早とちりでしたすみません。
mjk

2020/08/09 07:41

>>任意のN個の値に対して適用 知らなかったのでそちらも調べてみます。 ありがとうございました。
guest

回答1

0

ベストアンサー

そもそも、自分で実装する必要がありませんstd::minが同じ動作をします(cpprefjp)。

c++

1namespace std { 2 template <class T> 3 const T& min(const T& a, const T& b); 4}

投稿2020/08/09 07:11

maisumakun

総合スコア145930

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/08/09 07:13

標準ライブラリにあるものを再実装するのは、学習のためにやる場合は別として、実装・テスト・読解のコストを不必要に積もらせるだけです。
mjk

2020/08/09 07:17

すみません >>std::min()がint型しか対応していないので他に便利な関数無いか探したのですが見つけられなかったので自作してみたのですが int型以外の例えばdoubleとかunsigned long longをよく使うので何でも使える良い関数無いか調べてみつけられませんでした。 自分の勘違いかもしれませんので再度std::min()も調べてみます。
maisumakun

2020/08/09 07:20

上に書いたように、std::minはテンプレートになっていて、<演算子で比較可能な型であれば何にでも使えます。
maisumakun

2020/08/09 07:21

(元の型が>による比較にしか対応していなかった、ということかもしれませんね)
maisumakun

2020/08/09 07:22

なお、テンプレートでclassとなっていますが、C++のテンプレートはプリミティブ型にも問題なく適用できます。
mjk

2020/08/09 07:25

すみません勘違いでした。大変失礼しました。 別の原因(引数が足りていないせい)でエラーが出ていたのを早とちりして自作してしまいました。 見た方に誤解の無いように追記しておきます。
mjk

2020/08/09 07:40

すばやい回答とご指摘アドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問