次の 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
も行われます。