Другие ответы верны, вы не можете и не должны.
Кроме того, вы уверены, что хотите boost::shared_array<const char>
, а не const boost::shared_array<char>
?
Практически это работает:
boost::shared_array<char> acz;
boost::shared_array<const char>& acz2 = reinterpret_cast< boost::shared_array<const char>& >(acz);
НО это не очень хорошая идея и работает, только если boost :: shared_array и boost :: shared_array имеют одинаковую реализацию. Шаблоны могут быть частично специализированными:
template<class T>
struct TwoImplementations {
int m_nIntMember;
};
template<>
struct TwoImplementations< const T > {
double m_fDoubleMember;
};
Выполнение реинтерпретации между TwoImplementations<int>
и TwoImplementations<const int>
просто неправильно.