$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: oryol_at_[hidden]
Date: 2007-09-16 00:09:46
Author: jeremypack
Date: 2007-09-16 00:09:45 EDT (Sun, 16 Sep 2007)
New Revision: 39306
URL: http://svn.boost.org/trac/boost/changeset/39306
Log:
Fixed syntax for shared library reflection example.
Text files modified: 
   sandbox/libs/reflection/examples/extension/extension.cpp |    41 +++++++++++++++++++++++++++++---------- 
   1 files changed, 30 insertions(+), 11 deletions(-)
Modified: sandbox/libs/reflection/examples/extension/extension.cpp
==============================================================================
--- sandbox/libs/reflection/examples/extension/extension.cpp	(original)
+++ sandbox/libs/reflection/examples/extension/extension.cpp	2007-09-16 00:09:45 EDT (Sun, 16 Sep 2007)
@@ -18,28 +18,47 @@
 #include <boost/reflection/reflection.hpp>
 #include <iostream>
 
+#if defined(MSC_VER) || defined(WIN32)
+#define BOOST_EXTENSION_DIR_START "..\bin\"
+#else
+#define BOOST_EXTENSION_DIR_START "../bin/"
+#endif
+
 int main(void)
 {
   
   std::map<std::string, boost::reflections::reflection> reflection_map;
-  boost::extensions::shared_library lib("libCarLib.extension");
+  boost::extensions::shared_library lib
+  ((std::string(BOOST_EXTENSION_DIR_START) + "libcar_lib.extension").c_str());
   lib.open();
   lib.get<void, std::map<std::string, 
     boost::reflections::reflection> &>
     ("extension_export_car")(reflection_map);
+  if (reflection_map.size() != size_t(2)) {
+    std::cout << "Could not load reflections!";
+    return 1;
+  }
   // Let's create the reflection and add the methods
   boost::reflections::reflection & first_reflection =
     reflection_map["suv"];
   boost::reflections::reflection & second_reflection =
     reflection_map["compact"];
-  boost::reflections::instance first_instance =
-    first_reflection.get_constructor<const char *>()("First Instance");
-  boost::reflections::instance second_instance =
-    second_reflection.get_constructor<const char *>()("Second Instance");
-  std::cout <<
-    first_reflection.get_function<const char *>("get_type")(first_instance)
-    << std::endl;
-  std::cout <<
-    second_reflection.get_function<const char *>("get_type")(second_instance)
-    << std::endl;
+  
+  boost::reflections::constructor<const char *> first_constructor =
+    first_reflection.get_constructor<const char *>();
+  boost::reflections::instance first_instance = 
+    first_constructor("First Instance");
+  boost::reflections::function<const char *> first_function =
+    first_reflection.get_function<const char *>("get_type");
+  std::cout << "First reflection: " << first_function(first_instance)
+            << std::endl;
+  
+  boost::reflections::constructor<const char *> second_constructor =
+    second_reflection.get_constructor<const char *>();
+  boost::reflections::instance second_instance = 
+    second_constructor("Second Instance");
+  boost::reflections::function<const char *> second_function =
+    second_reflection.get_function<const char *>("get_type");
+  std::cout << "Second reflection: " << second_function(second_instance)
+            << std::endl;
 }