Одна из проблем C++ в том, что существуют так называемые примитивные типы.
Стандарное решением было ввести специализацию для примитивных типов и для остальных типов.
Для решения этих и других проблем был создан проект
C++ Object.
Основные цели проекта:
Создание иерархие типов. (например int32 <- value_type <- object).
Встроенная сериализация каждого типа.
Дальнейшие цели будут добавленны мере развития библиотеки.
Пример использования
Стандартный код:
#include <iostream>
void f(int& i)
{
i = 1;
}
void g(int i)
{
std::cout << i;
}
int main()
{
int i;
f(i);
g(i);
}
Код с использованием библиотеки:
#include <iostream>
void f(out_int32 i)
{
i = 1;
}
void g(in_int32 i)
{
std::cout << i;
}
int main()
{
int32 i;
f(i);
g(i);
}
Комментарии приветствуются.