2cl (pronounce "toccle") is a functional programming extension for C++
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 

28 行
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;
}
}