#include<list>
enum Bool { False, True };
template<Bool> struct isSingleton_;
template<Bool b> using isSingleton = typename isSingleton_<b>::type;
template<> struct isSingleton_<False> { using type = int; };
template<> struct isSingleton_<True> { using type = std::list<int>; };
template<Bool> struct mkSingle_;
template<Bool b> auto mkSingle = mkSingle_<b>::value;
template<> struct mkSingle_<False> { static const isSingleton<False> value = 0; };
template<> struct mkSingle_<True> { static const isSingleton<True> value; };
const isSingleton<True> mkSingle_<True>::value = {};
int main()
{
auto i = mkSingle<False>;
auto l = mkSingle<True>;
return i;
}
I2luY2x1ZGU8bGlzdD4KCgplbnVtIEJvb2wgeyBGYWxzZSwgVHJ1ZSB9OwoKCnRlbXBsYXRlPEJvb2w+IHN0cnVjdCBpc1NpbmdsZXRvbl87CnRlbXBsYXRlPEJvb2wgYj4gdXNpbmcgaXNTaW5nbGV0b24gPSB0eXBlbmFtZSBpc1NpbmdsZXRvbl88Yj46OnR5cGU7CnRlbXBsYXRlPD4gc3RydWN0IGlzU2luZ2xldG9uXzxGYWxzZT4geyB1c2luZyB0eXBlID0gaW50OyB9Owp0ZW1wbGF0ZTw+IHN0cnVjdCBpc1NpbmdsZXRvbl88VHJ1ZT4gIHsgdXNpbmcgdHlwZSA9IHN0ZDo6bGlzdDxpbnQ+OyB9OwoKCnRlbXBsYXRlPEJvb2w+IHN0cnVjdCBta1NpbmdsZV87CnRlbXBsYXRlPEJvb2wgYj4gYXV0byBta1NpbmdsZSA9IG1rU2luZ2xlXzxiPjo6dmFsdWU7CnRlbXBsYXRlPD4gc3RydWN0IG1rU2luZ2xlXzxGYWxzZT4geyBzdGF0aWMgY29uc3QgaXNTaW5nbGV0b248RmFsc2U+IHZhbHVlID0gMDsgfTsKdGVtcGxhdGU8PiBzdHJ1Y3QgbWtTaW5nbGVfPFRydWU+ICB7IHN0YXRpYyBjb25zdCBpc1NpbmdsZXRvbjxUcnVlPiAgdmFsdWU7IH07IApjb25zdCBpc1NpbmdsZXRvbjxUcnVlPiBta1NpbmdsZV88VHJ1ZT46OnZhbHVlID0ge307CgoKaW50IG1haW4oKSAKewogICAgYXV0byBpID0gbWtTaW5nbGU8RmFsc2U+OwogICAgYXV0byBsID0gbWtTaW5nbGU8VHJ1ZT47CiAgICAKICAgIHJldHVybiBpOwp9