【发布时间】:2013-06-19 23:38:51
【问题描述】:
我正在使用此模板将我的std::array 更改为字符串。为什么什么都打印不出来?
#include <iostream>
#include <string>
#include <array>
template<std::size_t N>
std::string to_string_2(std::array<char, N> const& arr) {
const char* str = reinterpret_cast<const char*>(arr.data());
return std::string( str, str+N );
}
int main()
{
std::array<char, 16> state = {1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,0};
std::cout << to_string_2(state) << std::endl;
}
【问题讨论】:
-
std::tr1::array 和 std::array 一样吗?
-
那么,
1应该转换为'1',15应该转换为...? -
@JamesBlack,它是它的先驱。
std::tr1::array是在 C++11 仍在进行最后润色时实现的。当 C++11 完成时,它被提升为std。我们在 C++14 中推出了 TR2。 -
@chris - 谢谢,我不知道这个前身。