<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## Variant 庫如何改進你的程序? * 對用戶指定的多種類型的進行類型安全的存儲和取回 * 在標準庫容器中存儲不同類型的方法 * 變量訪問的編譯期檢查 * 高效的、基于棧的變量存儲 Variant 庫關注的是對一組限定類型的類型安全存儲及取回,即非無類的聯合。Boost.Variant 庫與 Boost.Any 有許多共同之外,但在功能上也有不同的考慮。在每天的編程中通常都會需要用到非無類的聯合(不同的類型)。保持類型安全的一個典型方法是使用抽象基類,但 這不總是可以做到的;即使可以做得,堆分配和虛擬函數\[1\]的代價也可能太高。你也可以嘗試用不安全的無類類型,如 `void*` (它會導致不幸),或者是類型安全得無限制的可變類型,如 Boost.Any. 這里我們將看到 Boost.Variant,它支持限定的可變類型,即元素來自于一組支持的類型。 > \[1\] 盡管虛擬函數在性能方面有非常合理的代價。 許多其它的編程語言支持可變類型,它們也再次被證實是值得的。在C++內建的對可變類型的支持非常有限,只有某種形式的聯合(union),而且主要是為了與C兼容而保留。Boost.Variant 通過一個類型模板 `variant` 補救了這種情形,并附隨有安全的存儲及取回值的工具。一個可變數據類型提供一個與當前值的類型無關的接口。如果你曾經用過別的可變類型,可能是僅能支持固定的一組類型。這個庫不是這樣的;你在使用 `variant` 時自己定義一組允許使用的類型,而一個程序中可以包含任意個不同的 `variant` 實例。為了取回保存在 `variant` 中的值,你要么知道當前值的真實類型,要么使用已提供的類型安全的訪問者(visitor)機制。訪問者機制使得 Variant 非常不同于其它可變類型的庫,包括 Boost.Any (它可以持有任意類型的值),從而為處理這些類型提供了一個安全而健壯的環境。C++ 的聯合只對內建類型以及 POD 類型有用,但這個庫提供的非無類聯合可以支持所有類型。最后,效率方面也被考慮到了,這個庫基于棧存儲來保存它的值,從而避免了昂貴的堆分配。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看