TrinityCore
boost_program_options_with_filesystem_path.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef HACKS_boost_program_options_with_filesystem_path_h__
19#define HACKS_boost_program_options_with_filesystem_path_h__
20
21#include <boost/filesystem/path.hpp>
22#include <boost/program_options/value_semantic.hpp>
23
24namespace boost
25{
26namespace filesystem
27{
28 static void validate(boost::any& v, std::vector<std::string> const& values, path* /*target_type_tag*/, int)
29 {
30 using namespace boost::program_options;
31
32 validators::check_first_occurrence(v);
33 std::string const& s = validators::get_single_string(values);
34 try
35 {
36 v = path(s);
37 }
38 catch (std::exception const&)
39 {
40 throw validation_error(invalid_option_value(s));
41 }
42 }
43}
44}
45
46#endif // HACKS_boost_program_options_with_filesystem_path_h__
static void validate(boost::any &v, std::vector< std::string > const &values, path *, int)