-#pragma once\r
-\r
-#include "except.h"\r
-\r
-#include <boost/lexical_cast.hpp>\r
-\r
-#include <type_traits>\r
-#include <string>\r
-\r
-namespace caspar {\r
- \r
-template<typename T, typename C>\r
-typename std::enable_if<!std::is_convertible<T, std::wstring>::value, typename std::decay<T>::type>::type get_param(const std::wstring& name, C&& params, T fail_value = T())\r
-{ \r
- auto it = std::find(std::begin(params), std::end(params), name);\r
- if(it == params.end()) \r
- return fail_value;\r
- \r
- try\r
- {\r
- if(++it == params.end())\r
- throw std::out_of_range("");\r
-\r
- return boost::lexical_cast<std::decay<T>::type>(*it);\r
- }\r
- catch(...)\r
- { \r
- CASPAR_THROW_EXCEPTION(invalid_argument() << msg_info("Failed to parse param.") << arg_name_info(name) << nested_exception(std::current_exception()));\r
- }\r
-}\r
-\r
-template<typename C>\r
-std::wstring get_param(const std::wstring& name, C&& params, const std::wstring& fail_value = L"")\r
-{ \r
- auto it = std::find(std::begin(params), std::end(params), name);\r
- if(it == params.end()) \r
- return fail_value;\r
- \r
- try\r
- {\r
- if(++it == params.end())\r
- throw std::out_of_range("");\r
-\r
- return *it; \r
- }\r
- catch(...)\r
- { \r
- CASPAR_THROW_EXCEPTION(invalid_argument() << msg_info("Failed to parse param.") << arg_name_info(name) << nested_exception(std::current_exception()));\r
- }\r
-}\r
-\r
+#pragma once
+
+#include "except.h"
+
+#include <boost/lexical_cast.hpp>
+
+#include <type_traits>
+#include <string>
+
+namespace caspar {
+
+template<typename T, typename C>
+typename std::enable_if<!std::is_convertible<T, std::wstring>::value, typename std::decay<T>::type>::type get_param(const std::wstring& name, C&& params, T fail_value = T())
+{
+ auto it = std::find(std::begin(params), std::end(params), name);
+ if(it == params.end())
+ return fail_value;
+
+ try
+ {
+ if(++it == params.end())
+ throw std::out_of_range("");
+
+ return boost::lexical_cast<std::decay<T>::type>(*it);
+ }
+ catch(...)
+ {
+ CASPAR_THROW_EXCEPTION(invalid_argument() << msg_info("Failed to parse param.") << arg_name_info(name) << nested_exception(std::current_exception()));
+ }
+}
+
+template<typename C>
+std::wstring get_param(const std::wstring& name, C&& params, const std::wstring& fail_value = L"")
+{
+ auto it = std::find(std::begin(params), std::end(params), name);
+ if(it == params.end())
+ return fail_value;
+
+ try
+ {
+ if(++it == params.end())
+ throw std::out_of_range("");
+
+ return *it;
+ }
+ catch(...)
+ {
+ CASPAR_THROW_EXCEPTION(invalid_argument() << msg_info("Failed to parse param.") << arg_name_info(name) << nested_exception(std::current_exception()));
+ }
+}
+
}
\ No newline at end of file