Необходимо посмотреть на то, что Вы пытаетесь сделать, и если RTTI удовлетворит Ваши требования. Я реализовал свое собственное псевдоотражение в некоторых очень определенных целях. Например, я когда-то хотел быть в состоянии гибко настроить то, что произведет моделирование. Это потребовало добавления некоторого шаблонного кода к классам, которые будут произведены:
namespace {
static bool b2 = Filter::Filterable<const MyObj>::Register("MyObject");
}
bool MyObj::BuildMap()
{
Filterable<const OutputDisease>::AddAccess("time", &MyObj::time);
Filterable<const OutputDisease>::AddAccess("person", &MyObj::id);
return true;
}
первый вызов добавляет этот объект к системе фильтрации, которая звонит BuildMap()
метод для выяснения, какие методы доступны.
Затем в файле конфигурации, можно сделать что-то вроде этого:
FILTER-OUTPUT-OBJECT MyObject
FILTER-OUTPUT-FILENAME file.txt
FILTER-CLAUSE-1 person == 1773
FILTER-CLAUSE-2 time > 2000
Через некоторое шаблонное волшебство вовлечение boost
, это переводится в серию вызовов метода во времени выполнения (когда файл конфигурации прочитан), таким образом, это довольно эффективно. Я не рекомендовал бы делать это, если Вы действительно не должны, но, когда Вы делаете, можно сделать некоторый действительно интересный материал.
Microsoft sez "ЗАКРЫТО: WONTFIX" http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124686
Не сражайтесь с текущим ... и создавайте решение ... и сохраняйте свои скрипты в этом решении! : -)