我正在使用此模板將我的std::array
更改爲字符串。爲什麼不打印出任何東西?爲什麼不將std ::數組轉換爲std :: string的代碼不會顯示任何內容?
#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 ::數組與std :: array相同嗎? –
所以'1'應該轉換爲''1'','15'應該轉換爲...? – mfontanini
@JamesBlack,這是它的前身。 'std :: tr1 :: array'被實現了,而C++ 11仍然對它進行了最後的修改。當C++ 11完成時,它被提升爲'std'。我們有TR2來與C + + 14。 – chris