openMSX
Classes | Typedefs | Functions
detail Namespace Reference

Classes

struct  calculate_byte_size
 
struct  calculate_byte_size< ElementType, dynamic_extent >
 
struct  has_size_and_data
 
struct  has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >
 
struct  is_complete
 
struct  is_complete< T, decltype(sizeof(T))>
 
struct  is_container
 
struct  is_container_element_type_compatible
 
struct  is_container_element_type_compatible< T, E, void_t< decltype(detail::data(std::declval< T >()))> >
 
struct  is_span
 
struct  is_span< span< T, S > >
 
struct  is_std_array
 
struct  is_std_array< std::array< T, N > >
 
struct  span_storage
 
struct  span_storage< E, dynamic_extent >
 

Typedefs

template<typename... >
using void_t = void
 
template<typename T , typename Iterator >
using ToVectorType = std::conditional_t< std::is_same< T, void >::value, typename std::iterator_traits< Iterator >::value_type, T >
 

Functions

template<typename C >
constexpr auto size (const C &c) -> decltype(c.size())
 
template<typename T , size_t N>
constexpr auto size (const T(&)[N]) noexcept
 
template<typename C >
constexpr auto data (C &c) -> decltype(c.data())
 
template<typename C >
constexpr auto data (const C &c) -> decltype(c.data())
 
template<typename T , size_t N>
constexpr T * data (T(&array)[N]) noexcept
 
template<typename E >
constexpr const E * data (std::initializer_list< E > il) noexcept
 
size_t sum_of_sizes ()
 
template<typename Range , typename... Tail>
size_t sum_of_sizes (const Range &r, Tail &&... tail)
 
template<typename Result >
void append (Result &)
 
template<typename Result , typename Range , typename... Tail>
void append (Result &x, Range &&y, Tail &&... tail)
 
template<typename Result , typename T2 , typename... Tail>
void append (Result &x, std::vector< T2 > &&y, Tail &&... tail)
 

Typedef Documentation

◆ ToVectorType

template<typename T , typename Iterator >
using detail::ToVectorType = typedef std::conditional_t< std::is_same<T, void>::value, typename std::iterator_traits<Iterator>::value_type, T>

Definition at line 316 of file stl.hh.

◆ void_t

template<typename... >
using detail::void_t = typedef void

Definition at line 83 of file span.hh.

Function Documentation

◆ append() [1/3]

template<typename Result >
void detail::append ( Result &  )

◆ append() [2/3]

template<typename Result , typename Range , typename... Tail>
void detail::append ( Result &  x,
Range &&  y,
Tail &&...  tail 
)

Definition at line 360 of file stl.hh.

◆ append() [3/3]

template<typename Result , typename T2 , typename... Tail>
void detail::append ( Result &  x,
std::vector< T2 > &&  y,
Tail &&...  tail 
)

Definition at line 381 of file stl.hh.

◆ data() [1/4]

template<typename C >
constexpr auto detail::data ( C &  c) -> decltype(c.data())

Definition at line 69 of file span.hh.

Referenced by openmsx::YM2413Okazaki::YM2413::calcChannel(), openmsx::V9990P2Converter< Pixel >::convertLine(), openmsx::V9990P1Converter< Pixel >::convertLine(), openmsx::BitmapConverter< Pixel >::convertLinePlanar(), openmsx::VDPVRAM::cpuRead(), openmsx::LastDeltaBlocks::createNew(), openmsx::LastDeltaBlocks::createNullDiff(), openmsx::DeltaBlockCopy::DeltaBlockCopy(), openmsx::DeltaBlockDiff::DeltaBlockDiff(), openmsx::SettingsManager::findSetting(), openmsx::RawFrame::getBorderInfo(), openmsx::UnicodeKeymap::getDeadkey(), openmsx::ImagePrinterMSX::getDescription(), openmsx::FilePool::getFile(), openmsx::RawFrame::getLinePtrDirect(), openmsx::VRAMWindow::getReadArea(), openmsx::VRAMWindow::getReadAreaPlanar(), openmsx::UnicodeKeymap::getRelevantMods(), snappy::EightBytesReference< 8 >::getUint32AtOffset(), openmsx::OutputBuffer::insert(), openmsx::OutputBuffer::insertAt(), openmsx::MemInputArchive::loadChar(), openmsx::SocketConnection::output(), openmsx::OutputBuffer::OutputBuffer(), openmsx::ImagePrinter::printGraphicByte(), openmsx::SensorKid::readIO(), openmsx::VRAMWindow::readNP(), openmsx::VRAMWindow::readPlanar(), openmsx::Y8950::reset(), openmsx::SettingsConfig::saveSetting(), openmsx::OutputArchiveBase< MemOutputArchive >::serialize_blob(), openmsx::OutputArchiveBase< MemOutputArchive >::serializeWithID(), openmsx::InputArchiveBase< XmlInputArchive >::serializeWithID(), snappy::EightBytesReference< 8 >::setAddress(), openmsx::VDPVRAM::setCmdEngine(), openmsx::AviWriter::setFps(), openmsx::MidiInReader::signal(), TEST_CASE(), openmsx::GLPostProcessor::update(), openmsx::V9990BitmapConverter< Pixel >::V9990BitmapConverter(), openmsx::SN76489::write(), openmsx::NowindHost::write(), openmsx::ImagePrinter::write(), openmsx::PrinterPortLogger::writeData(), openmsx::VLM5030::writeData(), openmsx::PrinterCore::writeData(), openmsx::Y8950Adpcm::writeReg(), openmsx::YMF278::writeReg(), openmsx::Y8950::writeReg(), openmsx::AviWriter::~AviWriter(), openmsx::Frame::~Frame(), and openmsx::MSXtar::~MSXtar().

◆ data() [2/4]

template<typename C >
constexpr auto detail::data ( const C &  c) -> decltype(c.data())

Definition at line 72 of file span.hh.

◆ data() [3/4]

template<typename T , size_t N>
constexpr T* detail::data ( T(&)  array[N])
noexcept

Definition at line 75 of file span.hh.

◆ data() [4/4]

template<typename E >
constexpr const E* detail::data ( std::initializer_list< E >  il)
noexcept

Definition at line 78 of file span.hh.

◆ size() [1/2]

template<typename C >
constexpr auto detail::size ( const C &  c) -> decltype(c.size())

Definition at line 62 of file span.hh.

Referenced by openmsx::StretchScalerOutputBase< Pixel >::acquireLine(), openmsx::AviWriter::addFrame(), openmsx::DeltaBlockCopy::apply(), openmsx::V9990VRAM::clear(), circular_buffer< std::unique_ptr< openmsx::Frame > >::clear(), openmsx::DeltaBlockCopy::compress(), openmsx::RomFactory::create(), openmsx::LastDeltaBlocks::createNew(), openmsx::LastDeltaBlocks::createNullDiff(), openmsx::DeltaBlockCopy::DeltaBlockCopy(), openmsx::DeltaBlockDiff::DeltaBlockDiff(), openmsx::MSXMultiMemDevice::empty(), circular_buffer< std::unique_ptr< openmsx::Frame > >::empty(), openmsx::IDECDROM::executeCommand(), openmsx::SettingsManager::findSetting(), openmsx::WavWriter::flush(), circular_buffer< std::unique_ptr< openmsx::Frame > >::full(), openmsx::OggReader::getAudio(), openmsx::OSDWidget::getChildren(), openmsx::FilePool::getFile(), openmsx::MSXDevice::getHardwareConfig(), openmsx::RawTrack::getIdamBuffer(), TclParser::getLast(), openmsx::HD::getMotherBoard(), openmsx::Debugger::getMotherBoard(), openmsx::MSXDevice::getPluggingController(), openmsx::LocalFile::getPos(), openmsx::OutputBuffer::getPosition(), openmsx::HD::getTigerTreeHash(), openmsx::MegaFlashRomSCCPlusSD::getWriteCacheLine(), openmsx::File::is_open(), openmsx::XMLLoader::load(), openmsx::SRAM::memset(), openmsx::FileBase::mmap(), openmsx::MSXKanji::MSXKanji(), openmsx::MSXKanji12::MSXKanji12(), openmsx::MSXSCCPlusCart::MSXSCCPlusCart(), openmsx::Scale_1on2< Pixel >::operator()(), openmsx::CollectionSaver< TC >::operator()(), openmsx::CollectionLoader< TC >::operator()(), openmsx::OSDWidget::paintGLRecursive(), openmsx::OSDWidget::paintSDLRecursive(), openmsx::RawTrack::readBlock(), openmsx::MSXMixer::reInit(), openmsx::MSXCPUInterface::replace_IO_Out(), circular_buffer< std::unique_ptr< openmsx::Frame > >::reserve(), openmsx::SpriteChecker::reset(), openmsx::MemBuffer< char, SSE2_ALIGNMENT >::resize(), openmsx::RomAscii16_2::RomAscii16_2(), openmsx::RomAscii8_8::RomAscii8_8(), openmsx::RomColecoMegaCart::RomColecoMegaCart(), openmsx::RomDatabase::RomDatabase(), openmsx::MemOutputArchive::save(), openmsx::SDLGLOutputSurface::saveScreenshot(), openmsx::SCSIHD::SCSIHD(), openmsx::SDLGLVisibleSurface::SDLGLVisibleSurface(), openmsx::SDLOffScreenSurface::SDLOffScreenSurface(), SDLSurfacePtr::SDLSurfacePtr(), circular_buffer< std::unique_ptr< openmsx::Frame > >::set_capacity(), openmsx::RomBlocks< BANK_SIZE_ >::setBlockMask(), openmsx::RomBlocks< BANK_SIZE_ >::setExtraMemory(), openmsx::AviWriter::setFps(), openmsx::CPUCore< openmsx::Z80TYPE >::setInterface(), openmsx::ReverseManager::setReRecordCount(), TclParser::TclParser(), openmsx::OSDWidget::transformPos(), openmsx::CRC16::update(), openmsx::RawTrack::updateCrc(), openmsx::LocalFile::write(), openmsx::Wav16Writer::write(), openmsx::RawTrack::writeBlock(), openmsx::Carnivore2::writeMem(), openmsx::AviWriter::~AviWriter(), openmsx::MSXMultiMemDevice::~MSXMultiMemDevice(), openmsx::MSXtar::~MSXtar(), openmsx::OSDConsoleRenderer::~OSDConsoleRenderer(), openmsx::PreCacheFile::~PreCacheFile(), and openmsx::SCSILS120::~SCSILS120().

◆ size() [2/2]

template<typename T , size_t N>
constexpr auto detail::size ( const   T(&)[N])
noexcept

Definition at line 65 of file span.hh.

◆ sum_of_sizes() [1/2]

size_t detail::sum_of_sizes ( )
inline

Definition at line 342 of file stl.hh.

Referenced by append().

◆ sum_of_sizes() [2/2]

template<typename Range , typename... Tail>
size_t detail::sum_of_sizes ( const Range &  r,
Tail &&...  tail 
)

Definition at line 347 of file stl.hh.

References begin(), utf8::distance(), and end().