2016-02-22 43 views

回答

1

有用於與大小的數組在編譯時http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/reference/buffer/overload7.html

template< 
    typename PodType, 
    std::size_t N> 
mutable_buffers_1 buffer(
    PodType (&data)[N]); 

已知在C++模板特 '字符[5]', '的char [128]' 和 '字符*' 是不同的類型,因此編譯器可以利用此優勢http://www.cplusplus.com/faq/sequences/arrays/sizeof-array/#cpp

+0

對於Boost的「新手」,您能否詳細說明您的答案,並提供更多詳細信息? 在這個例子中創建的數組是「純」的C++數組,它不是一個Boost數組? – Shuzheng

+0

謝謝!像char [5]這樣的數組大小是否存儲在內存中?爲什麼N被聲明爲模板參數?模板是「template 」 - 編譯器在編譯時是否將N變量綁定到數組的大小,還是在運行時完成? – Shuzheng

+0

只要您傳遞了附加信息,它就在編譯時可用。在將'char [N]'轉換爲'char *'後,它不再可用。 –