2012-11-10 4 views
5

C++ 1xのために利用可能な "リテラル接尾コードが" リテラルサフィックス(CMP。例えばhttp://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11Style.pdf)をサポートします。私はgcc 4.7を使用しており、私たちのシステムにはいくつかのユニットを導入したいと考えています。特に私たちのコードの半分は度と他の半分のラジアンを使用しています(さまざまなサードパーティのライブラリが原因です)、これは常に間違いの原因です。例えば言うことができる。 "Radian angle = 90_deg;"とても役立つでしょう。C++ユニット

しかし、それはすべての権利を取得するための、いくつかの時間がかかるだろう、私はこれを実装する方法に見てきた、それはなんとか見えます。だから、そこでは既に使用されているすべてのものを実装している完成した/テスト済みの実装があるかどうか疑問に思います(すべてのC++開発者が再実装する必要はありませんか? rad/deg以外に、私は長さの測定値(mm、cm、m)を探しています。私はすでにGoogleで検索しましたが、使用できるものは見つかりませんでした。

誰もが、例えばの実装を知っています使用できるSIシステムは?

+1

[この参照](http://en.cppreference.com/w/cpp/language/user_literal)は実施例のカップルを有しています。 –

+0

ありがとうございますが、私は例/参考文献を探していません。私は、私のニーズに対応するためにリテラルとキャスト演算子の完全なセットを実装できると確信しています。しかし、実装には時間がかかり、すべてのユースケースをさらにテストする必要があります。 SIシステムは誰もが同じだから、何百人ものC++開発者がそういうことをしていると思うだろう - だから、誰かが "ちょうど"使うことができるクリーンでテスト済みの実装をしたいと思っている。私は車輪を再発明したくない。 – Frankie

+3

+1はホイールを再発明したくないためです。これは** **あなたが探しているされていない何が、ブーストは、[Boost.Units](http://www.boost.org/doc/libs/1_52_0/doc/html/boost_units.html)の下でテンプレート化バージョンを提供しています。私はあなたが得る他の答えが何か不思議です。 Google検索の – Ali

答えて

2

使用boost.units

:異なる単位で表されたメトリックを安全に処理できること。
昇圧ユニットと構文は、悪くはない。

quantity<length> dx(2.0*meter); 
+1

boost.unitsはユーザー定義のサフィックスと一緒に使うことはできません... – bames53

+0

@ bames53私はそれを言いたくありませんでした。それはちょうどそのboost.Units UDLを提供していません。 – log0

+0

私は同じ利点があると言います。しかし、私がC++ 11xの実装を見つけたと仮定すると、Boostはなぜ好ましいでしょうか? – Frankie

関連する問題