#pragma once #include "UnsafePascalStr.h" class PLPasStr; namespace PortabilityLayer { template class PascalStr : public UnsafePascalStr { public: PascalStr(); PascalStr(size_t size, const char *str); explicit PascalStr(const PLPasStr &pstr); }; } #include #include "PLPasStr.h" namespace PortabilityLayer { template inline PascalStr::PascalStr() : UnsafePascalStr(0, nullptr) { } template PascalStr::PascalStr(size_t size, const char *str) : UnsafePascalStr(size, str) { } template PascalStr::PascalStr(const PLPasStr &pstr) : UnsafePascalStr(pstr.Length(), pstr.Chars()) { } }