code: def test_domain_cpp_ast_template_args():
      # from breathe#218
      check(
          "function",
          "template<typename F> "
          "void allow(F *f, typename func<F, B, G != 1>::type tt)",
          {
              2: "I0E5allowP1FN4funcI1F1BXG != 1EE4typeE",
              3: "I0E5allowP1FN4funcI1F1BXne1GL1EEE4typeE",
              4: "I0E5allowvP1FN4funcI1F1BXne1GL1EEE4typeE",
          },
      )
      # from #3542
      check(
          "type",
          "template<typename T> {key}"
          "enable_if_not_array_t = std::enable_if_t<!is_array<T>::value, int>",
          {2: "I0E21enable_if_not_array_t"},
          key="using",
      )
  
imports: import itertools
  import re
  import zlib
  import pytest
  import sphinx.domains.cpp
  from sphinx import addnodes
  from sphinx.addnodes import desc, desc_content, desc_name, desc_parameter, desc_parameterlist, desc_sig_name, desc_sig_space, desc_signature, desc_signature_line, pending_xref
  from sphinx.domains.cpp import DefinitionError, DefinitionParser, NoOldIdError, Symbol, _id_prefix, _max_id
  from sphinx.ext.intersphinx import load_mappings, normalize_intersphinx_mapping
  from sphinx.testing import restructuredtext
  from sphinx.testing.util import assert_node
  from sphinx.writers.text import STDINDENT
label_desc: Use image node_id 19 for calling a global function with example usage: test_domain_cpp_ast_template_args() without return types