簡體   English   中英

在 C++,如何將模板參數強制為范圍枚舉值類型?

[英]in C++, How to enforce template parameter to be of a scoped enum value type?

我有一個 class 模板,我想這樣寫:

template </*what to put here?*/ T>
Class Bar {};

我想強制 T 只是來自范圍枚舉的值。 我使用了此處提供的is_scoped_enum類型檢查,但是我能想到的最好辦法是將Bar更改為如下所示:

template <typename T>
concept ScopeEnum = is_scoped_enum<T>::value;

template<ScopeEnum SE, SE se>
class Bar {};

我如何實施它才能使Bar保持原樣?

使用泛型非類型參數,並約束其聲明

template <ScopedEnum auto se>
class Bar {};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM