[解決済み] "ユーザー定義リテラル演算子が見つかりません"
2022-02-07 23:05:06
質問
CppCoreGuidelines Philosophyを読んでいて、理解できない例が出てきました。( https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-philosophy )
codeexampleにはこうあります。
change_speed(double s); // bad: what does s signify?
// ...
change_speed(2.3);
change_speed(Speed s); // better: the meaning of s is specified
// ...
change_speed(2.3); // error: no unit
change_speed(23m / 10s); // meters per second
最後の行について質問です。ガイドラインでは、Speedをこのように定義することが推奨されていると思うのですが。
typedef int Speed;
が、例の最終行では、引数の一部として m と s を使っています。同じことをしても、quot;ユーザー定義リテラル演算子が見つかりません"というエラーが表示されるだけです。
これはどうすればいいのでしょうか?
どのように解決するのですか?
<ブロッククオート最後の一行について質問です。ガイドラインではSpeedをこのように定義することが推奨されていると思うのですが、いかがでしょうか?
typedef int Speed;
いや、そうではない。 というようなことを期待しているようです。
class Speed {
double value;
public:
....
}
class Distance {
double value;
public:
...
};
class Time {
double value;
public:
....
};
Speed operator /(Distance d, Time t);
と、距離と時間に関するユーザー定義のリテラル演算子のペアです。
Distance operator "" _m(double);
Time operator "" _s(double);
しかし、この例にはバグがあります。 そうであるべきです。
change_speed(23_m / 10_s); // meters per second
関連
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] 未定義、未指定、および実装で定義された動作
-
[解決済み] C++の複数行の文字列リテラル
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】0は10進数のリテラルか8進数のリテラルか?
-
[解決済み】なぜC++コンパイラはoperator==とoperator!=を定義しないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件