У меня есть неуправляемое приложение C ++ (неуправляемое значение: не использовать ничего из причудливого материала .Net). Начав с чего-то простого класса вроде этого:
class Book
{
public:
...
private:
string m_name;
string m_author;
int m_year;
};
Я хочу создать функциональность, которая может получить доступ к «метаинформации» класса и использовать ее для динамического построения на ней логики, например
В моих самых смелых мечтах я представляю изменение этот класс выглядит следующим образом:
[id="Book"]
class Book
{
public:
...
private:
[id="Name", defaultValue="", maximumLength=100]
string m_name;
[id="Author", defaultValue="", maximumLength=100]
string m_author;
[id="Year", defaultValue=2000, minimum=1900]
int m_year;
};
А затем возможность получить эту «мета» информацию для создания диалогов, заполнения сеток данных, сериализации и десериализации экземпляров, ...
Но, концепция атрибутов ограничена .Net / управляемый код?
И если бы я мог использовать атрибуты в неуправляемом коде, можно ли было бы сделать что-то подобное? А с чего лучше начать? (примеры, ...)
Также, можно ли найти те же (или похожие) концепции в других компиляторах на других платформах?
Я использую Visual Studio 2010 и, как уже говорилось ранее, неуправляемый / собственный C ++.