CPP Templates 之 非類型模板參數限制

來源:互聯網
上載者:User
非類型模板參數是有限制的。通常而言,他們可以使常整數(包括枚舉值)或者指向外部連結化物件的指標

浮點數和類對象是不允許作為非類型模板參數的:

template<double VAT>//ERROR
double process(double V)
{
    RETURN V*VAT;
};

template<std::string name>//ERROR
class MyClass{
……
};

由於字串文字是內部連線物件,所以不能用作模板實參

template<char const* name>
class MyClass{
};

MyClass<"hello"> x;//ERROR:不允許使用字串文字"hello"

另外,也不能使用全域指標做為模板參數。
--------------以下供參考-------------------
外部連結:
在代碼塊外聲明的或用extern const修飾的
範圍:該程式.

內部連結:
在代碼塊外用static或const修飾的
範圍:該檔案.

無連結:
自動變數,寄存器變數,在代碼塊中用static聲明的.
範圍:代碼塊.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.