rewrite unsafe_cast

test=develop
revert-15207-remove_op_handle_lock_and_fix_var
sneaxiy 6 years ago
parent 600f6d8272
commit e02f67eff7

@ -131,8 +131,6 @@ DDim slice_ddim(const DDim& dim, int begin, int end) {
int arity(const DDim& d) { return d.size(); }
/// \cond HIDDEN
struct DDimPrinter {
std::ostream& os;
explicit DDimPrinter(std::ostream& os_) : os(os_) {}
@ -143,8 +141,6 @@ struct DDimPrinter {
}
};
/// \endcond
std::ostream& operator<<(std::ostream& os, const DDim& ddim) {
ddim.apply_visitor(DDimPrinter(os));
return os;

@ -126,7 +126,9 @@ class DDim {
private:
template <int D>
inline Dim<D>& UnsafeCast() {
return const_cast<Dim<D>&>(const_cast<const DDim*>(this)->UnsafeCast<D>());
static_assert(D >= 0 && D <= kMaxRank, "Invalid rank");
auto* p = static_cast<void*>(&dim_);
return *reinterpret_cast<Dim<D>*>(p);
}
template <int D>

Loading…
Cancel
Save