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))))