Function: smart-c++

smart-c++ is an autoloaded, interactive and byte-compiled function defined in hmouse-tag.el.

Signature

(smart-c++ &optional IDENTIFIER NEXT)

Documentation

Jump to the definition of optional C++ IDENTIFIER or the one at point.

Optional second arg NEXT means jump to next matching C++ tag.

It assumes that its caller has already checked that the key was pressed in an appropriate buffer and has moved the cursor to the selected buffer.

See the documentation for c++-to-definition for the behavior of this function when the OO-Browser has been loaded. Otherwise:
 (1) on a #include statement, the include file is displayed;
     Look for include file in directory lists smart-c-cpp-include-path
     and smart-c-include-path;
 (2) on a C++ identifier, the identifier definition is displayed,
     assuming the identifier is found within an etags generated tag file
     in the current directory or any of its ancestor directories;
 (3) if smart-c-use-lib-man is non-nil, the C++ identifier is
     recognized as a library symbol, and a man page is found for the
     identifier, then the man page is displayed.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hmouse-tag.el
;;;###autoload
(defun smart-c++ (&optional identifier next)
  "Jump to the definition of optional C++ IDENTIFIER or the one at point.
Optional second arg NEXT means jump to next matching C++ tag.

It assumes that its caller has already checked that the key was pressed in an
appropriate buffer and has moved the cursor to the selected buffer.

See the documentation for `c++-to-definition' for the behavior of this
function when the OO-Browser has been loaded.
Otherwise:
 (1) on a `#include' statement, the include file is displayed;
     Look for include file in directory lists `smart-c-cpp-include-path'
     and `smart-c-include-path';
 (2) on a C++ identifier, the identifier definition is displayed,
     assuming the identifier is found within an `etags' generated tag file
     in the current directory or any of its ancestor directories;
 (3) if `smart-c-use-lib-man' is non-nil, the C++ identifier is
     recognized as a library symbol, and a man page is found for the
     identifier, then the man page is displayed."

  (interactive)
  (if (fboundp 'c++-to-definition)
      ;; Only fboundp if the OO-Browser has been loaded.
      (c++-to-definition t)
    (or (if identifier nil (smart-c-include-file))
	(smart-c++-tag identifier next))))