Coverage Report

Created: 2026-02-09 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmCommandLineArgument.h
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst or https://cmake.org/licensing for details.  */
3
#pragma once
4
5
#include <cctype>
6
7
#include <cm/optional>
8
#include <cm/string_view>
9
10
#include "cmStringAlgorithms.h"
11
#include "cmSystemTools.h"
12
13
template <typename FunctionSignature>
14
struct cmCommandLineArgument
15
{
16
  enum class Values
17
  {
18
    Zero,
19
    One,
20
    Two,
21
    ZeroOrOne,
22
    OneOrMore
23
  };
24
25
  enum class RequiresSeparator
26
  {
27
    Yes,
28
    No
29
  };
30
31
  enum class ParseMode
32
  {
33
    Valid,
34
    Invalid,
35
    SyntaxError,
36
    ValueError
37
  };
38
39
  std::string InvalidSyntaxMessage;
40
  std::string InvalidValueMessage;
41
  std::string Name;
42
  Values Type;
43
  RequiresSeparator SeparatorNeeded;
44
  std::function<FunctionSignature> StoreCall;
45
46
  template <typename FunctionType>
47
  cmCommandLineArgument(std::string n, Values t, FunctionType&& func)
48
771
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
771
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
771
    , Name(std::move(n))
51
771
    , Type(t)
52
771
    , SeparatorNeeded(RequiresSeparator::Yes)
53
771
    , StoreCall(std::forward<FunctionType>(func))
54
771
  {
55
771
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<(anonymous namespace)::$_8&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, (anonymous namespace)::$_8&)
Line
Count
Source
48
106
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
106
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
106
    , Name(std::move(n))
51
106
    , Type(t)
52
106
    , SeparatorNeeded(RequiresSeparator::Yes)
53
106
    , StoreCall(std::forward<FunctionType>(func))
54
106
  {
55
106
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_0&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_0&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_6>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_6&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_7>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_7&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_8>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_8&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_9>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_9&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_10>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_10&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_12>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_12&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_13>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_13&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_16>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_16&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_17>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_17&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_20>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_20&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_21>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_21&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_25>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_25&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_26>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_26&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_27>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_27&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_28>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_28&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_29>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_29&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_31>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_31&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_37>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_37&&)
Line
Count
Source
48
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
49
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
50
35
    , Name(std::move(n))
51
35
    , Type(t)
52
35
    , SeparatorNeeded(RequiresSeparator::Yes)
53
35
    , StoreCall(std::forward<FunctionType>(func))
54
35
  {
55
35
  }
56
57
  template <typename FunctionType>
58
  cmCommandLineArgument(std::string n, Values t, RequiresSeparator s,
59
                        FunctionType&& func)
60
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
61
35
    , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
62
35
    , Name(std::move(n))
63
35
    , Type(t)
64
35
    , SeparatorNeeded(s)
65
35
    , StoreCall(std::forward<FunctionType>(func))
66
35
  {
67
35
  }
68
69
  template <typename FunctionType>
70
  cmCommandLineArgument(std::string n, std::string failedMsg, Values t,
71
                        FunctionType&& func)
72
527
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
527
    , InvalidValueMessage(std::move(failedMsg))
74
527
    , Name(std::move(n))
75
527
    , Type(t)
76
527
    , SeparatorNeeded(RequiresSeparator::Yes)
77
527
    , StoreCall(std::forward<FunctionType>(func))
78
527
  {
79
527
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_5&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_5&)
Line
Count
Source
72
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
1
    , InvalidValueMessage(std::move(failedMsg))
74
1
    , Name(std::move(n))
75
1
    , Type(t)
76
1
    , SeparatorNeeded(RequiresSeparator::Yes)
77
1
    , StoreCall(std::forward<FunctionType>(func))
78
1
  {
79
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_4&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_4&)
Line
Count
Source
72
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
1
    , InvalidValueMessage(std::move(failedMsg))
74
1
    , Name(std::move(n))
75
1
    , Type(t)
76
1
    , SeparatorNeeded(RequiresSeparator::Yes)
77
1
    , StoreCall(std::forward<FunctionType>(func))
78
1
  {
79
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<(anonymous namespace)::$_8&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, (anonymous namespace)::$_8&)
Line
Count
Source
72
70
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
70
    , InvalidValueMessage(std::move(failedMsg))
74
70
    , Name(std::move(n))
75
70
    , Type(t)
76
70
    , SeparatorNeeded(RequiresSeparator::Yes)
77
70
    , StoreCall(std::forward<FunctionType>(func))
78
70
  {
79
70
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_11>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_11&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_14>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_14&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_15>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_15&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_5&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_5&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_22>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_22&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_23>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_23&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_24>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_24&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_30>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_30&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_32>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_32&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_33>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_33&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_34>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_34&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_35>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_35&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_36>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_36&&)
Line
Count
Source
72
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
73
35
    , InvalidValueMessage(std::move(failedMsg))
74
35
    , Name(std::move(n))
75
35
    , Type(t)
76
35
    , SeparatorNeeded(RequiresSeparator::Yes)
77
35
    , StoreCall(std::forward<FunctionType>(func))
78
35
  {
79
35
  }
80
81
  template <typename FunctionType>
82
  cmCommandLineArgument(std::string n, std::string failedMsg, Values t,
83
                        RequiresSeparator s, FunctionType&& func)
84
425
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
425
    , InvalidValueMessage(std::move(failedMsg))
86
425
    , Name(std::move(n))
87
425
    , Type(t)
88
425
    , SeparatorNeeded(s)
89
425
    , StoreCall(std::forward<FunctionType>(func))
90
425
  {
91
425
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_0&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_0&)
Line
Count
Source
84
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
1
    , InvalidValueMessage(std::move(failedMsg))
86
1
    , Name(std::move(n))
87
1
    , Type(t)
88
1
    , SeparatorNeeded(s)
89
1
    , StoreCall(std::forward<FunctionType>(func))
90
1
  {
91
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_1&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_1&)
Line
Count
Source
84
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
1
    , InvalidValueMessage(std::move(failedMsg))
86
1
    , Name(std::move(n))
87
1
    , Type(t)
88
1
    , SeparatorNeeded(s)
89
1
    , StoreCall(std::forward<FunctionType>(func))
90
1
  {
91
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_2&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_2&)
Line
Count
Source
84
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
1
    , InvalidValueMessage(std::move(failedMsg))
86
1
    , Name(std::move(n))
87
1
    , Type(t)
88
1
    , SeparatorNeeded(s)
89
1
    , StoreCall(std::forward<FunctionType>(func))
90
1
  {
91
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_6>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_6&&)
Line
Count
Source
84
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
1
    , InvalidValueMessage(std::move(failedMsg))
86
1
    , Name(std::move(n))
87
1
    , Type(t)
88
1
    , SeparatorNeeded(s)
89
1
    , StoreCall(std::forward<FunctionType>(func))
90
1
  {
91
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_3&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetCacheArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_3&)
Line
Count
Source
84
1
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
1
    , InvalidValueMessage(std::move(failedMsg))
86
1
    , Name(std::move(n))
87
1
    , Type(t)
88
1
    , SeparatorNeeded(s)
89
1
    , StoreCall(std::forward<FunctionType>(func))
90
1
  {
91
1
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_1&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_1&)
Line
Count
Source
84
70
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
70
    , InvalidValueMessage(std::move(failedMsg))
86
70
    , Name(std::move(n))
87
70
    , Type(t)
88
70
    , SeparatorNeeded(s)
89
70
    , StoreCall(std::forward<FunctionType>(func))
90
70
  {
91
70
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_2&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_2&)
Line
Count
Source
84
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
35
    , InvalidValueMessage(std::move(failedMsg))
86
35
    , Name(std::move(n))
87
35
    , Type(t)
88
35
    , SeparatorNeeded(s)
89
35
    , StoreCall(std::forward<FunctionType>(func))
90
35
  {
91
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<(anonymous namespace)::$_8&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, (anonymous namespace)::$_8&)
Line
Count
Source
84
175
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
175
    , InvalidValueMessage(std::move(failedMsg))
86
175
    , Name(std::move(n))
87
175
    , Type(t)
88
175
    , SeparatorNeeded(s)
89
175
    , StoreCall(std::forward<FunctionType>(func))
90
175
  {
91
175
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_3&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_3&)
Line
Count
Source
84
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
35
    , InvalidValueMessage(std::move(failedMsg))
86
35
    , Name(std::move(n))
87
35
    , Type(t)
88
35
    , SeparatorNeeded(s)
89
35
    , StoreCall(std::forward<FunctionType>(func))
90
35
  {
91
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_4&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_4&)
Line
Count
Source
84
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
35
    , InvalidValueMessage(std::move(failedMsg))
86
35
    , Name(std::move(n))
87
35
    , Type(t)
88
35
    , SeparatorNeeded(s)
89
35
    , StoreCall(std::forward<FunctionType>(func))
90
35
  {
91
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_18>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_18&&)
Line
Count
Source
84
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
35
    , InvalidValueMessage(std::move(failedMsg))
86
35
    , Name(std::move(n))
87
35
    , Type(t)
88
35
    , SeparatorNeeded(s)
89
35
    , StoreCall(std::forward<FunctionType>(func))
90
35
  {
91
35
  }
cmake.cxx:cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::cmCommandLineArgument<cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_38>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::Values, cmCommandLineArgument<bool (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cmake*)>::RequiresSeparator, cmake::SetArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)::$_38&&)
Line
Count
Source
84
35
    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
85
35
    , InvalidValueMessage(std::move(failedMsg))
86
35
    , Name(std::move(n))
87
35
    , Type(t)
88
35
    , SeparatorNeeded(s)
89
35
    , StoreCall(std::forward<FunctionType>(func))
90
35
  {
91
35
  }
92
93
  bool matches(std::string const& input) const
94
288
  {
95
288
    bool matched = false;
96
288
    if (this->Type == Values::Zero) {
97
106
      matched = (input == this->Name);
98
182
    } else if (this->SeparatorNeeded == RequiresSeparator::No) {
99
180
      matched = cmHasPrefix(input, this->Name);
100
180
    } else if (cmHasPrefix(input, this->Name)) {
101
0
      if (input.size() == this->Name.size()) {
102
0
        matched = true;
103
0
      } else {
104
0
        matched =
105
0
          (input[this->Name.size()] == '=' || input[this->Name.size()] == ' ');
106
0
      }
107
0
    }
108
288
    return matched;
109
288
  }
110
111
  template <typename T, typename... CallState>
112
  bool parse(std::string const& input, T& index,
113
             std::vector<std::string> const& allArgs,
114
             CallState&&... state) const
115
36
  {
116
36
    ParseMode parseState = ParseMode::Valid;
117
118
36
    if (this->Type == Values::Zero) {
119
0
      if (input.size() == this->Name.size()) {
120
0
        parseState =
121
0
          this->StoreCall(std::string{}, std::forward<CallState>(state)...)
122
0
          ? ParseMode::Valid
123
0
          : ParseMode::Invalid;
124
0
      } else {
125
0
        parseState = ParseMode::SyntaxError;
126
0
      }
127
128
36
    } else if (this->Type == Values::One || this->Type == Values::ZeroOrOne) {
129
36
      if (input.size() == this->Name.size()) {
130
36
        auto nextValueIndex = index + 1;
131
36
        if (nextValueIndex >= allArgs.size() ||
132
36
            IsFlag(allArgs[nextValueIndex])) {
133
0
          if (this->Type == Values::ZeroOrOne) {
134
0
            parseState =
135
0
              this->StoreCall(std::string{}, std::forward<CallState>(state)...)
136
0
              ? ParseMode::Valid
137
0
              : ParseMode::Invalid;
138
0
          } else {
139
0
            parseState = ParseMode::ValueError;
140
0
          }
141
36
        } else {
142
36
          parseState = this->StoreCall(allArgs[nextValueIndex],
143
36
                                       std::forward<CallState>(state)...)
144
36
            ? ParseMode::Valid
145
36
            : ParseMode::Invalid;
146
36
          index = nextValueIndex;
147
36
        }
148
36
      } else {
149
0
        auto value = this->extract_single_value(input, parseState);
150
0
        if (parseState == ParseMode::Valid) {
151
0
          parseState =
152
0
            this->StoreCall(value, std::forward<CallState>(state)...)
153
0
            ? ParseMode::Valid
154
0
            : ParseMode::Invalid;
155
0
        }
156
0
      }
157
36
    } else if (this->Type == Values::Two) {
158
0
      if (input.size() == this->Name.size()) {
159
0
        if (index + 2 >= allArgs.size() || IsFlag(allArgs[index + 1]) ||
160
0
            IsFlag(allArgs[index + 2])) {
161
0
          parseState = ParseMode::ValueError;
162
0
        } else {
163
0
          index += 2;
164
0
          parseState =
165
0
            this->StoreCall(cmStrCat(allArgs[index - 1], ";", allArgs[index]),
166
0
                            std::forward<CallState>(state)...)
167
0
            ? ParseMode::Valid
168
0
            : ParseMode::Invalid;
169
0
        }
170
0
      }
171
0
    } else if (this->Type == Values::OneOrMore) {
172
0
      if (input.size() == this->Name.size()) {
173
0
        auto nextValueIndex = index + 1;
174
0
        if (nextValueIndex >= allArgs.size() ||
175
0
            IsFlag(allArgs[nextValueIndex])) {
176
0
          parseState = ParseMode::ValueError;
177
0
        } else {
178
0
          std::string buffer = allArgs[nextValueIndex++];
179
0
          while (nextValueIndex < allArgs.size() &&
180
0
                 !IsFlag(allArgs[nextValueIndex])) {
181
0
            buffer = cmStrCat(buffer, ";", allArgs[nextValueIndex++]);
182
0
          }
183
0
          parseState =
184
0
            this->StoreCall(buffer, std::forward<CallState>(state)...)
185
0
            ? ParseMode::Valid
186
0
            : ParseMode::Invalid;
187
0
          index = (nextValueIndex - 1);
188
0
        }
189
0
      } else {
190
0
        auto value = this->extract_single_value(input, parseState);
191
0
        if (parseState == ParseMode::Valid) {
192
0
          parseState =
193
0
            this->StoreCall(value, std::forward<CallState>(state)...)
194
0
            ? ParseMode::Valid
195
0
            : ParseMode::Invalid;
196
0
        }
197
0
      }
198
0
    }
199
200
36
    if (parseState == ParseMode::SyntaxError) {
201
0
      cmSystemTools::Error(
202
0
        cmStrCat("'", input, "'", this->InvalidSyntaxMessage));
203
36
    } else if (parseState == ParseMode::ValueError) {
204
0
      cmSystemTools::Error(this->InvalidValueMessage);
205
0
    }
206
36
    return (parseState == ParseMode::Valid);
207
36
  }
208
209
  template <typename... Values>
210
  static std::function<FunctionSignature> setToTrue(Values&&... values)
211
  {
212
    return ArgumentLambdaHelper<FunctionSignature>::generateSetToTrue(
213
      std::forward<Values>(values)...);
214
  }
215
216
  template <typename... Values>
217
  static std::function<FunctionSignature> setToValue(Values&&... values)
218
  {
219
    return ArgumentLambdaHelper<FunctionSignature>::generateSetToValue(
220
      std::forward<Values>(values)...);
221
  }
222
223
private:
224
  template <typename T>
225
  class ArgumentLambdaHelper;
226
227
  template <typename... CallState>
228
  class ArgumentLambdaHelper<bool(std::string const&, CallState...)>
229
  {
230
  public:
231
    static std::function<bool(std::string const&, CallState...)>
232
    generateSetToTrue(bool& value1)
233
    {
234
      return [&value1](std::string const&, CallState&&...) -> bool {
235
        value1 = true;
236
        return true;
237
      };
238
    }
239
240
    static std::function<bool(std::string const&, CallState...)>
241
    generateSetToTrue(bool& value1, bool& value2)
242
    {
243
      return [&value1, &value2](std::string const&, CallState&&...) -> bool {
244
        value1 = true;
245
        value2 = true;
246
        return true;
247
      };
248
    }
249
250
    static std::function<bool(std::string const&, CallState...)>
251
    generateSetToValue(std::string& value1)
252
    {
253
      return [&value1](std::string const& arg, CallState&&...) -> bool {
254
        value1 = arg;
255
        return true;
256
      };
257
    }
258
259
    static std::function<bool(std::string const&, CallState...)>
260
    generateSetToValue(cm::optional<std::string>& value1)
261
    {
262
      return [&value1](std::string const& arg, CallState&&...) -> bool {
263
        value1 = arg;
264
        return true;
265
      };
266
    }
267
  };
268
269
  std::string extract_single_value(std::string const& input,
270
                                   ParseMode& parseState) const
271
0
  {
272
    // parse the string to get the value
273
0
    auto possible_value = cm::string_view(input).substr(this->Name.size());
274
0
    if (possible_value.empty()) {
275
0
      parseState = ParseMode::ValueError;
276
0
    } else if (possible_value[0] == '=') {
277
0
      possible_value.remove_prefix(1);
278
0
      if (possible_value.empty()) {
279
0
        parseState = ParseMode::ValueError;
280
0
      }
281
0
    }
282
0
    if (parseState == ParseMode::Valid && possible_value[0] == ' ') {
283
0
      possible_value.remove_prefix(1);
284
0
    }
285
0
    return std::string(possible_value);
286
0
  }
287
288
  static bool IsFlag(cm::string_view arg)
289
36
  {
290
36
    return !arg.empty() && arg[0] == '-' &&
291
0
      !(arg.size() >= 2 && std::isdigit(arg[1]));
292
36
  }
293
};