#include <cstddef>
#include <array>
#include <iostream>
// Cursor.h header
namespace detail
{
template<typename T = void>
struct Cursor
{
static constexpr Cursor<T> const ZERO{};
std::size_t row, column;
};
template<typename T>
constexpr Cursor<T> Cursor<T>::ZERO;
}
using Cursor = detail::Cursor<>;
// main.cpp
//#include "Cursor.h"
int main(int, char**) noexcept
{
std::array<int, Cursor::ZERO.row> row_arr{};
std::cout << row_arr.size() << "\n";
//foo::bar(); // static method defined in second translation unit
return 0;
}
I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDxhcnJheT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKLy8gQ3Vyc29yLmggaGVhZGVyCgpuYW1lc3BhY2UgZGV0YWlsCnsKCXRlbXBsYXRlPHR5cGVuYW1lIFQgPSB2b2lkPgoJc3RydWN0IEN1cnNvcgoJewoJCXN0YXRpYyBjb25zdGV4cHIgQ3Vyc29yPFQ+IGNvbnN0IFpFUk97fTsKCQlzdGQ6OnNpemVfdCByb3csIGNvbHVtbjsKCX07CgoJdGVtcGxhdGU8dHlwZW5hbWUgVD4KCWNvbnN0ZXhwciBDdXJzb3I8VD4gQ3Vyc29yPFQ+OjpaRVJPOwp9Cgp1c2luZyBDdXJzb3IgPSBkZXRhaWw6OkN1cnNvcjw+OwoKLy8gbWFpbi5jcHAKCi8vI2luY2x1ZGUgIkN1cnNvci5oIgoKaW50IG1haW4oaW50LCBjaGFyKiopIG5vZXhjZXB0CnsKCXN0ZDo6YXJyYXk8aW50LCBDdXJzb3I6OlpFUk8ucm93PiByb3dfYXJye307CglzdGQ6OmNvdXQgPDwgcm93X2Fyci5zaXplKCkgPDwgIlxuIjsKCS8vZm9vOjpiYXIoKTsgLy8gc3RhdGljIG1ldGhvZCBkZWZpbmVkIGluIHNlY29uZCB0cmFuc2xhdGlvbiB1bml0CglyZXR1cm4gMDsKfQ==