ORIGINAL
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
tuple.h File Reference

Heterogeneous tuple container implementation. More...

#include "printable.h"
#include "comparable.h"
#include "couple.h"
#include "types.h"
Include dependency graph for tuple.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  original::tuple< TYPES >
 Container for multiple heterogeneous elements. More...
 
struct  std::tuple_size< original::tuple< TYPES... > >
 Specialization of tuple_size for tuple to enable structured bindings. More...
 
struct  std::tuple_element< I, original::tuple< TYPES... > >
 Specialization of tuple_element for tuple to enable structured bindings. More...
 

Namespaces

namespace  original
 Main namespace for the project Original.
 
namespace  std
 Standard namespace extensions for original::alternative.
 

Functions

template<typename F_TYPE , typename S_TYPE >
tuple< F_TYPE, S_TYPEoriginal::makeTuple (const couple< F_TYPE, S_TYPE > &cp)
 Creates a tuple from a couple (copy version)
 
template<typename F_TYPE , typename S_TYPE >
tuple< F_TYPE, S_TYPEoriginal::makeTuple (couple< F_TYPE, S_TYPE > &&cp)
 Creates a tuple from a couple (move version)
 
template<typename... TYPES>
void std::swap (original::tuple< TYPES... > &lhs, original::tuple< TYPES... > &rhs) noexcept
 
template<std::size_t I, typename... TYPES>
constexpr auto & std::get (original::tuple< TYPES... > &t) noexcept
 Structured binding support - get for non-const lvalue reference.
 
template<std::size_t I, typename... TYPES>
constexpr const auto & std::get (const original::tuple< TYPES... > &t) noexcept
 Structured binding support - get for const lvalue reference.
 
template<std::size_t I, typename... TYPES>
constexpr auto && std::get (original::tuple< TYPES... > &&t) noexcept
 Structured binding support - get for rvalue reference.
 

Detailed Description

Heterogeneous tuple container implementation.

This file implements a type-safe, compile-time fixed-size tuple container with:

Note
Structured binding is enabled via std::tuple_size and std::tuple_element specializations. Value type deduction is used to ensure compatibility with const auto& [a, b, c] = myTuple syntax.
All index operations are compile-time checked for bounds safety.
Type conversion validation ensures type safety during element assignment.