2cl (pronounce "toccle") is a functional programming extension for C++
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

28 linhas
430 B

#pragma once
#include <stddef.h>
namespace cl
{
template<typename a, typename ...b>
class tuple{
a _mine;
tuple<b...> _child;
template<size_t idx, a, b...>
friend a get();
public:
tuple(a mine, b ...child)
: _mine(mine)
, _child(child...)
{}
};
template<size_t idx, typename ...a>
constexpr auto get(tuple<a...> v)
{
if constexpr (idx!=0)
return get<idx-1>(v._child);
else
return v._mine;
}
}