Lines Matching refs:Wide
208 template <typename Wide, typename Narrow>
209 Wide MultiplyLong(Narrow a, Narrow b) { in MultiplyLong()
211 std::is_integral<Narrow>::value && std::is_integral<Wide>::value, in MultiplyLong()
213 static_assert(std::is_signed<Narrow>::value == std::is_signed<Wide>::value, in MultiplyLong()
215 static_assert(sizeof(Narrow) * 2 == sizeof(Wide), "only twice as long"); in MultiplyLong()
217 return static_cast<Wide>(a) * static_cast<Wide>(b); in MultiplyLong()
223 template <typename Wide, typename Narrow>
224 Wide AddLong(Narrow a, Narrow b) { in AddLong()
226 std::is_integral<Narrow>::value && std::is_integral<Wide>::value, in AddLong()
228 static_assert(std::is_signed<Narrow>::value == std::is_signed<Wide>::value, in AddLong()
230 static_assert(sizeof(Narrow) * 2 == sizeof(Wide), "only twice as long"); in AddLong()
232 return static_cast<Wide>(a) + static_cast<Wide>(b); in AddLong()