#include <iostream>
class StringView
{
public:
constexpr StringView(const char* start_, const char* end_): start(start_), end(end_) {}
constexpr uintptr_t Length() const {return end-start;} //internal compiler error
private:
const char* start;
const char* end;
};
int main() {
const char* str = "Test string";
StringView s(str, str + 5);
std::cout << s.Length() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgU3RyaW5nVmlldwp7CnB1YmxpYzoKICBjb25zdGV4cHIgU3RyaW5nVmlldyhjb25zdCBjaGFyKiBzdGFydF8sIGNvbnN0IGNoYXIqIGVuZF8pOiBzdGFydChzdGFydF8pLCBlbmQoZW5kXykge30KICBjb25zdGV4cHIgdWludHB0cl90IExlbmd0aCgpIGNvbnN0IHtyZXR1cm4gZW5kLXN0YXJ0O30gLy9pbnRlcm5hbCBjb21waWxlciBlcnJvcgoKcHJpdmF0ZToKICBjb25zdCBjaGFyKiBzdGFydDsKICBjb25zdCBjaGFyKiBlbmQ7Cn07CgppbnQgbWFpbigpIHsKCWNvbnN0IGNoYXIqIHN0ciA9ICJUZXN0IHN0cmluZyI7CglTdHJpbmdWaWV3IHMoc3RyLCBzdHIgKyA1KTsKCXN0ZDo6Y291dCA8PCBzLkxlbmd0aCgpIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9