簡體   English   中英

默認情況下匹配std :: index_sequence

[英]Matching std::index_sequence by default argument

模板參數推導是否允許以下​​內容?還是未推論的上下文?

#include <utility>
#include<tuple>

template<std::size_t... I>
auto make(std::index_sequence<I...> = std::make_index_sequence<2>())
{
    return;
}

int main() {
    make();
}

編譯警告很奇怪

默認參數不是推論的一部分。

因此,您無法在此處(那樣)做您想做的事情。

如果合適,您可以這樣做:

template <typename Seq = std::index_sequence<0, 1>>
auto make(Seq = std::make_index_sequence<2>())
{
    /*...*/
}

對於它的價值,它可以編譯為:

template<std::size_t... I>
auto make(std::index_sequence<I...> = std::make_index_sequence<sizeof... (I)>())

但可能無法滿足您的需求。

暫無
暫無

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

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