这是打印出填充有0、1、2……254的buf数组的c++代码。
#include <iterator>
#include <iostream>
#include <numeric>
int main()
{
int buf[255];
auto it_b = std::begin(buf);
auto it_e = std::end(buf);
std::iota(it_b, it_e, 0);
std::copy(it_b, it_e, std::ostream_iterator<decltype(*it_b)>(std::cout, " "));
std::cout << std::endl;
return 0;
}
我试图让它通用,所以只有一个明确给出类型int
的地方。
由于我需要明确声明ostream_iterator
的类型,我想知道实现这一点的最佳方法是什么。
decltype(*it_b)
decltype(buf[0])
- 其他方法...
使用这种或那种方法的利弊是什么?
假设我们此时被困在C风格数组中。
std::decay_t<declval(..)>
。 - Jarod42type = int;
,并在问号后使用type
。 - Jarod42