2010-01-10 63 views
1

對於以C++開發的規則引擎,核心功能之一是值類型。我到目前爲止的內容有點像COM風格的VARIANT - 每個值都知道它的類型。類型轉換有一些規則,但是有點混亂。創建一個簡單的腳本語言 - VARIANT-like值類型

我想知道是否有很好的插入值類可以用來解決這個問題,而不需要我使用整個預先構建的系統。例如,也許提振有一些東西?

+3

您應該首先限制隱式轉換:稍後添加它們比在廣泛使用它們之後刪除更容易。 – 2010-01-10 14:51:00

+0

這可能是很好的建議,我最初的嘗試在轉換上存在一些奇怪的不一致。 – 2010-01-10 21:26:08

回答

6

尋找boost::anyboost::variant

基本上有三種類型的不同實現的:

  1. 能夠類型(非類型化思考語言)間進行自由鑄造A型 - boost::lexical_cast是你的朋友在這裏,或boost::variant ...
  2. 一類型可以容納任何類型,但是類型安全 - 例如與int初始化,保持一個int並且不允許隱象別的被處理 - 這是boost::any
  3. 邪惡允許任何類型 - 轉換成你想要的東西沒有錯誤檢查,沒有類型持有的信息 - 請考慮void*
+2

聽起來更像他想要boost :: variant。 http://www.boost.org/doc/html/variant.html – 2010-01-10 14:51:53

+0

@Roger:是的,注意到在發佈 – 2010-01-10 14:53:33

+0

之後,我需要仔細觀察,但boost :: variant聽起來像是答案,爲了節省我寫下所有的東西從頭開始的東西。 – 2010-01-10 21:23:22