Converted dynamic_pointer_cast to use new cast method
diff --git a/src/main/cpp/datepatternconverter.cpp b/src/main/cpp/datepatternconverter.cpp
index ba429f3..122a5d6 100644
--- a/src/main/cpp/datepatternconverter.cpp
+++ b/src/main/cpp/datepatternconverter.cpp
@@ -140,7 +140,7 @@
 	LogString& toAppendTo,
 	Pool& p) const
 {
-    DatePtr date = std::dynamic_pointer_cast<Date>(obj);
+    DatePtr date = log4cxx::cast<Date>(obj);
 
 	if (date != NULL)
 	{
@@ -148,7 +148,7 @@
 	}
 	else
 	{
-        LoggingEventPtr event = std::dynamic_pointer_cast<LoggingEvent>(obj);
+        LoggingEventPtr event = log4cxx::cast<LoggingEvent>(obj);
 
 		if (event != NULL)
 		{
diff --git a/src/main/cpp/domconfigurator.cpp b/src/main/cpp/domconfigurator.cpp
index 2960cc7..55f7328 100644
--- a/src/main/cpp/domconfigurator.cpp
+++ b/src/main/cpp/domconfigurator.cpp
@@ -206,7 +206,7 @@
     try
     {
         ObjectPtr instance = ObjectPtr(Loader::loadClass(className).newInstance());
-        AppenderPtr appender = std::dynamic_pointer_cast<Appender>(instance);
+        AppenderPtr appender = log4cxx::cast<Appender>(instance);
         PropertySetter propSetter(appender);
 
         appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR)));
@@ -248,7 +248,7 @@
             else if (tagName == ROLLING_POLICY_TAG)
             {
                 RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement));
-                RollingFileAppenderPtr rfa = std::dynamic_pointer_cast<RollingFileAppender>(appender);
+                RollingFileAppenderPtr rfa = log4cxx::cast<RollingFileAppender>(appender);
 
                 if (rfa != NULL)
                 {
@@ -258,8 +258,8 @@
             else if (tagName == TRIGGERING_POLICY_TAG)
             {
                 ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement));
-                RollingFileAppenderPtr rfa = std::dynamic_pointer_cast<RollingFileAppender>(appender);
-                TriggeringPolicyPtr policyPtr = std::dynamic_pointer_cast<TriggeringPolicy>(policy);
+                RollingFileAppenderPtr rfa = log4cxx::cast<RollingFileAppender>(appender);
+                TriggeringPolicyPtr policyPtr = log4cxx::cast<TriggeringPolicy>(policy);
 
                 if (rfa != NULL)
                 {
@@ -267,11 +267,11 @@
                 }
                 else
                 {
-                    log4cxx::net::SMTPAppenderPtr smtpa = std::dynamic_pointer_cast<log4cxx::net::SMTPAppender>(appender);
+                    log4cxx::net::SMTPAppenderPtr smtpa = log4cxx::cast<log4cxx::net::SMTPAppender>(appender);
 
                     if (smtpa != NULL)
                     {
-                        log4cxx::spi::TriggeringEventEvaluatorPtr evaluator = std::dynamic_pointer_cast<TriggeringEventEvaluator>(policyPtr);
+                        log4cxx::spi::TriggeringEventEvaluatorPtr evaluator = log4cxx::cast<TriggeringEventEvaluator>(policyPtr);
                         smtpa->setEvaluator(evaluator);
                     }
                 }
@@ -282,7 +282,7 @@
 
                 if (appender->instanceof(AppenderAttachable::getStaticClass()))
                 {
-                    AppenderAttachablePtr aa = std::dynamic_pointer_cast<AppenderAttachable>(appender);
+                    AppenderAttachablePtr aa = log4cxx::cast<AppenderAttachable>(appender);
                     LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
                                   refName + LOG4CXX_STR("] to appender named [") +
                                   appender->getName() + LOG4CXX_STR("]."));
@@ -326,7 +326,7 @@
                              subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
                              ErrorHandler::getStaticClass(),
                              0);
-    eh = std::dynamic_pointer_cast<ErrorHandler>(obj);
+    eh = log4cxx::cast<ErrorHandler>(obj);
 
     if (eh != 0)
     {
@@ -362,7 +362,7 @@
         }
 
         propSetter.activate(p);
-        std::shared_ptr<AppenderSkeleton> appSkeleton = std::dynamic_pointer_cast<AppenderSkeleton>(appender);
+        std::shared_ptr<AppenderSkeleton> appSkeleton = log4cxx::cast<AppenderSkeleton>(appender);
 
         if (appSkeleton != 0)
         {
@@ -383,7 +383,7 @@
     FilterPtr filter;
     std::shared_ptr<Object> obj = OptionConverter::instantiateByClassName(clazz,
                        Filter::getStaticClass(), 0);
-    filter = std::dynamic_pointer_cast<Filter>(obj);
+    filter = log4cxx::cast<Filter>(obj);
 
     if (filter != 0)
     {
@@ -456,7 +456,7 @@
                             className,
                             LoggerFactory::getStaticClass(),
                             0);
-        loggerFactory = std::dynamic_pointer_cast<LoggerFactory>(obj);
+        loggerFactory = log4cxx::cast<LoggerFactory>(obj);
         PropertySetter propSetter(loggerFactory);
 
         for (apr_xml_elem* currentElement = factoryElement->first_child;
@@ -560,7 +560,7 @@
     try
     {
         ObjectPtr instance = ObjectPtr(Loader::loadClass(className).newInstance());
-        LayoutPtr layout = std::dynamic_pointer_cast<Layout>(instance);
+        LayoutPtr layout = log4cxx::cast<Layout>(instance);
         PropertySetter propSetter(layout);
 
         for (apr_xml_elem* currentElement = layout_element->first_child;
@@ -616,7 +616,7 @@
             {
                 std::vector<log4cxx::spi::FilterPtr> filters;
                 parseFilters(p, utf8Decoder, currentElement, filters);
-                FilterBasedTriggeringPolicyPtr fbtp = std::dynamic_pointer_cast<FilterBasedTriggeringPolicy>(instance);
+                FilterBasedTriggeringPolicyPtr fbtp = log4cxx::cast<FilterBasedTriggeringPolicy>(instance);
 
                 if (fbtp != NULL)
                 {
@@ -655,7 +655,7 @@
     try
     {
         ObjectPtr instance = ObjectPtr(Loader::loadClass(className).newInstance());
-        RollingPolicyPtr layout = std::dynamic_pointer_cast<RollingPolicy>(instance);
+        RollingPolicyPtr layout = log4cxx::cast<RollingPolicy>(instance);
         PropertySetter propSetter(layout);
 
         for (apr_xml_elem* currentElement = layout_element->first_child;
diff --git a/src/main/cpp/integerpatternconverter.cpp b/src/main/cpp/integerpatternconverter.cpp
index 3e68b74..36a11d5 100644
--- a/src/main/cpp/integerpatternconverter.cpp
+++ b/src/main/cpp/integerpatternconverter.cpp
@@ -48,7 +48,7 @@
 	LogString& toAppendTo,
 	Pool& p) const
 {
-    IntegerPtr i = std::dynamic_pointer_cast<Integer>(obj);
+    IntegerPtr i = log4cxx::cast<Integer>(obj);
 
 	if (i != NULL)
 	{
diff --git a/src/main/cpp/levelpatternconverter.cpp b/src/main/cpp/levelpatternconverter.cpp
index 4a34484..13ae6d7 100644
--- a/src/main/cpp/levelpatternconverter.cpp
+++ b/src/main/cpp/levelpatternconverter.cpp
@@ -59,7 +59,7 @@
  */
 LogString LevelPatternConverter::getStyleClass(const ObjectPtr& obj) const
 {
-    LoggingEventPtr e = std::dynamic_pointer_cast<LoggingEvent>(obj);
+    LoggingEventPtr e = log4cxx::cast<LoggingEvent>(obj);
 
 	if (e != NULL)
 	{
diff --git a/src/main/cpp/loggingeventpatternconverter.cpp b/src/main/cpp/loggingeventpatternconverter.cpp
index 0c9d7f5..33c98e7 100644
--- a/src/main/cpp/loggingeventpatternconverter.cpp
+++ b/src/main/cpp/loggingeventpatternconverter.cpp
@@ -40,7 +40,7 @@
 	LogString& output,
 	log4cxx::helpers::Pool& p) const
 {
-    LoggingEventPtr le = std::dynamic_pointer_cast<LoggingEvent>(obj);
+    LoggingEventPtr le = log4cxx::cast<LoggingEvent>(obj);
 
 	if (le != NULL)
 	{
diff --git a/src/main/cpp/odbcappender.cpp b/src/main/cpp/odbcappender.cpp
index c40bf28..b171fe9 100644
--- a/src/main/cpp/odbcappender.cpp
+++ b/src/main/cpp/odbcappender.cpp
@@ -350,7 +350,7 @@
 	{
         PatternLayoutPtr patternLayout;
         LayoutPtr asLayout = this->getLayout();
-        patternLayout = std::dynamic_pointer_cast<PatternLayout>(asLayout);
+        patternLayout = log4cxx::cast<PatternLayout>(asLayout);
 
 		if (patternLayout != 0)
 		{
diff --git a/src/main/cpp/optionconverter.cpp b/src/main/cpp/optionconverter.cpp
index 86361d9..f80231f 100644
--- a/src/main/cpp/optionconverter.cpp
+++ b/src/main/cpp/optionconverter.cpp
@@ -396,7 +396,7 @@
 		LogLog::debug(LOG4CXX_STR("Preferred configurator class: ") + clazz);
         const Class& clazzObj = Loader::loadClass(clazz);
         ObjectPtr obj = ObjectPtr(clazzObj.newInstance());
-        configurator = std::dynamic_pointer_cast<Configurator>(obj);
+        configurator = log4cxx::cast<Configurator>(obj);
 
 		if (configurator == 0)
 		{
diff --git a/src/main/cpp/patternlayout.cpp b/src/main/cpp/patternlayout.cpp
index b3ff18e..95c2655 100644
--- a/src/main/cpp/patternlayout.cpp
+++ b/src/main/cpp/patternlayout.cpp
@@ -132,7 +132,7 @@
 		converterIter++)
 	{
         LoggingEventPatternConverterPtr eventConverter =
-                std::dynamic_pointer_cast<LoggingEventPatternConverter>(*converterIter);
+                log4cxx::cast<LoggingEventPatternConverter>(*converterIter);
 
 		if (eventConverter != NULL)
 		{
diff --git a/src/main/cpp/propertyconfigurator.cpp b/src/main/cpp/propertyconfigurator.cpp
index 784d92e..da1a911 100644
--- a/src/main/cpp/propertyconfigurator.cpp
+++ b/src/main/cpp/propertyconfigurator.cpp
@@ -210,7 +210,7 @@
         std::shared_ptr<Object> instance = std::shared_ptr<Object>(
                     Loader::loadClass(factoryClassName).newInstance() );
 
-        loggerFactory = std::dynamic_pointer_cast<LoggerFactory>( instance );
+        loggerFactory = log4cxx::cast<LoggerFactory>( instance );
         static const LogString FACTORY_PREFIX(LOG4CXX_STR("log4j.factory."));
         Pool p;
         PropertySetter::setProperties(loggerFactory, props, FACTORY_PREFIX, p);
@@ -420,7 +420,7 @@
     std::shared_ptr<Object> obj =
         OptionConverter::instantiateByKey(
             props, prefix, Appender::getStaticClass(), 0);
-    appender = std::dynamic_pointer_cast<Appender>( obj );
+    appender = log4cxx::cast<Appender>( obj );
 
     if (appender == 0)
     {
@@ -441,7 +441,7 @@
             std::shared_ptr<Object> obj =
                 OptionConverter::instantiateByKey(
                     props, layoutPrefix, Layout::getStaticClass(), 0);
-            layout = std::dynamic_pointer_cast<Layout>( obj );
+            layout = log4cxx::cast<Layout>( obj );
 
             if (layout != 0)
             {
diff --git a/src/main/cpp/propertysetter.cpp b/src/main/cpp/propertysetter.cpp
index 9de7893..651c4af 100644
--- a/src/main/cpp/propertysetter.cpp
+++ b/src/main/cpp/propertysetter.cpp
@@ -96,7 +96,7 @@
 	{
 		LogLog::debug(LOG4CXX_STR("Setting option name=[") +
 			option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]"));
-        OptionHandlerPtr handler = std::dynamic_pointer_cast<OptionHandler>(obj);
+        OptionHandlerPtr handler = log4cxx::cast<OptionHandler>(obj);
         handler->setOption(option, value);
 	}
 }
@@ -105,7 +105,7 @@
 {
 	if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass()))
 	{
-        OptionHandlerPtr handler = std::dynamic_pointer_cast<OptionHandler>(obj);
+        OptionHandlerPtr handler = log4cxx::cast<OptionHandler>(obj);
         handler->activateOptions(p);
 	}
 }
diff --git a/src/main/cpp/resourcebundle.cpp b/src/main/cpp/resourcebundle.cpp
index 09f6060..07de007 100644
--- a/src/main/cpp/resourcebundle.cpp
+++ b/src/main/cpp/resourcebundle.cpp
@@ -71,7 +71,7 @@
 		{
 			const Class& classObj = Loader::loadClass(bundleName);
             ObjectPtr obj = ObjectPtr(classObj.newInstance());
-            current = std::dynamic_pointer_cast<PropertyResourceBundle>(obj);
+            current = log4cxx::cast<PropertyResourceBundle>(obj);
 		}
 		catch (ClassNotFoundException&)
 		{
diff --git a/src/main/cpp/rollingfileappender.cpp b/src/main/cpp/rollingfileappender.cpp
index 5c9cdbc..4d79281 100644
--- a/src/main/cpp/rollingfileappender.cpp
+++ b/src/main/cpp/rollingfileappender.cpp
@@ -78,7 +78,7 @@
 	//
 	if (triggeringPolicy == NULL)
 	{
-        TriggeringPolicyPtr trig = std::dynamic_pointer_cast<TriggeringPolicy>(rollingPolicy);
+        TriggeringPolicyPtr trig = log4cxx::cast<TriggeringPolicy>(rollingPolicy);
 
 		if (trig != NULL)
 		{
diff --git a/src/main/cpp/rollingpolicybase.cpp b/src/main/cpp/rollingpolicybase.cpp
index 5d6160f..b5fb448 100644
--- a/src/main/cpp/rollingpolicybase.cpp
+++ b/src/main/cpp/rollingpolicybase.cpp
@@ -130,7 +130,7 @@
 	{
         IntegerPatternConverterPtr intPattern;
         PatternConverterPtr patternptr = (*converterIter);
-        intPattern = std::dynamic_pointer_cast<IntegerPatternConverter>(patternptr);
+        intPattern = log4cxx::cast<IntegerPatternConverter>(patternptr);
 
 		if (intPattern != NULL)
 		{
@@ -151,7 +151,7 @@
 	{
         DatePatternConverterPtr datePattern;
         PatternConverterPtr patternptr = (*converterIter);
-        datePattern = std::dynamic_pointer_cast<DatePatternConverter>(patternptr);
+        datePattern = log4cxx::cast<DatePatternConverter>(patternptr);
 
 		if (datePattern != NULL)
 		{
diff --git a/src/main/cpp/smtpappender.cpp b/src/main/cpp/smtpappender.cpp
index 37669f7..6908dd7 100644
--- a/src/main/cpp/smtpappender.cpp
+++ b/src/main/cpp/smtpappender.cpp
@@ -785,6 +785,6 @@
 void SMTPAppender::setEvaluatorClass(const LogString& value)
 {
     ObjectPtr obj = ObjectPtr(Loader::loadClass(value).newInstance());
-    evaluator = std::dynamic_pointer_cast<TriggeringEventEvaluator>(obj);
+    evaluator = log4cxx::cast<TriggeringEventEvaluator>(obj);
 }
 
diff --git a/src/test/cpp/asyncappendertestcase.cpp b/src/test/cpp/asyncappendertestcase.cpp
index bde208f..f98fe82 100644
--- a/src/test/cpp/asyncappendertestcase.cpp
+++ b/src/test/cpp/asyncappendertestcase.cpp
@@ -279,7 +279,7 @@
 		void testConfiguration()
 		{
 			log4cxx::xml::DOMConfigurator::configure("input/xml/asyncAppender1.xml");
-            AsyncAppenderPtr asyncAppender = std::dynamic_pointer_cast<AsyncAppender>(Logger::getRootLogger()->getAppender(LOG4CXX_STR("ASYNC")));
+            AsyncAppenderPtr asyncAppender = log4cxx::cast<AsyncAppender>(Logger::getRootLogger()->getAppender(LOG4CXX_STR("ASYNC")));
 			LOGUNIT_ASSERT(!(asyncAppender == 0));
 			LOGUNIT_ASSERT_EQUAL(100, asyncAppender->getBufferSize());
 			LOGUNIT_ASSERT_EQUAL(false, asyncAppender->getBlocking());
diff --git a/src/test/cpp/propertyconfiguratortest.cpp b/src/test/cpp/propertyconfiguratortest.cpp
index 2558c58..74f8203 100644
--- a/src/test/cpp/propertyconfiguratortest.cpp
+++ b/src/test/cpp/propertyconfiguratortest.cpp
@@ -76,7 +76,7 @@
 		props.put(LOG4CXX_STR("log4j.appender.VECTOR1.threshold"), LOG4CXX_STR("WARN"));
 		PropertyConfigurator::configure(props);
 		LoggerPtr root(Logger::getRootLogger());
-        VectorAppenderPtr appender = std::dynamic_pointer_cast<VectorAppender>(root->getAppender(LOG4CXX_STR("VECTOR1")));
+        VectorAppenderPtr appender = log4cxx::cast<VectorAppender>(root->getAppender(LOG4CXX_STR("VECTOR1")));
 		LOGUNIT_ASSERT_EQUAL((int) Level::WARN_INT, appender->getThreshold()->toInt());
 		LOG4CXX_INFO(root, "Info message");
 		LOG4CXX_WARN(root, "Warn message");
diff --git a/src/test/cpp/varia/errorhandlertestcase.cpp b/src/test/cpp/varia/errorhandlertestcase.cpp
index 21f035f..8fd2444 100644
--- a/src/test/cpp/varia/errorhandlertestcase.cpp
+++ b/src/test/cpp/varia/errorhandlertestcase.cpp
@@ -58,10 +58,10 @@
 	{
 		DOMConfigurator::configure("input/xml/fallback1.xml");
         AppenderPtr appender = root->getAppender(LOG4CXX_STR("PRIMARY"));
-        FileAppenderPtr primary = std::dynamic_pointer_cast<FileAppender>(appender);
+        FileAppenderPtr primary = log4cxx::cast<FileAppender>(appender);
         log4cxx::varia::FallbackErrorHandlerPtr eh;
         log4cxx::spi::ErrorHandlerPtr errHandle = primary->getErrorHandler();
-        eh = std::dynamic_pointer_cast<log4cxx::varia::FallbackErrorHandler>(errHandle);
+        eh = log4cxx::cast<log4cxx::varia::FallbackErrorHandler>(errHandle);
 		LOGUNIT_ASSERT(eh != 0);
 
 		common();