5

次の C++ プログラムがありますが、何らかの理由でint64_tテンプレート引数として使用できません。

#include <iostream>
#include <ranges>

template<typename T> 
void fn() {
    for (auto val : std::ranges::iota_view{T{1701}, T{8473}} 
                  | std::views::reverse
                  | std::views::take(5))
    {
        std::cout << val << std::endl;
    }

}

int main()
{
    fn<int16_t>();
    fn<int32_t>();
    // does not compile:
    // fn<int64_t>();
}

これは予想されることですか(私は何か間違ったことをしています)、それともコンパイラ/標準ライブラリの不幸なバグですか?

注:std::views::reverseコードを削除すると、コンパイルint64_tも行われます。

4

1 に答える 1