Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F75800192
usermem_r-cpp.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Aug 4, 08:54
Size
2 KB
Mime Type
text/x-c
Expires
Tue, Aug 6, 08:54 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
19612609
Attached To
rCADDMESH CADD_mesher
usermem_r-cpp.cpp
View Options
/*<html><pre> -<a href="qh-user_r.htm"
>-------------------------------</a><a name="TOP">-</a>
usermem_r-cpp.cpp
Redefine qh_exit() as 'throw std::runtime_error("QH10003 ...")'
This file is not included in the Qhull builds.
qhull_r calls qh_exit() when qh_errexit() is not available. For example,
it calls qh_exit() if you linked the wrong qhull library.
The C++ interface avoids most of the calls to qh_exit().
If needed, include usermem_r-cpp.o before libqhullstatic_r.a. You may need to
override duplicate symbol errors (e.g. /FORCE:MULTIPLE for DevStudio). It
may produce a warning about throwing an error from C code.
*/
extern
"C"
{
void
qh_exit
(
int
exitcode
);
}
#include <stdexcept>
#include <stdlib.h>
/*-<a href="qh-user_r.htm#TOC"
>-------------------------------</a><a name="qh_exit">-</a>
qh_exit( exitcode )
exit program
notes:
same as exit()
*/
void
qh_exit
(
int
exitcode
)
{
exitcode
=
exitcode
;
throw
std
::
runtime_error
(
"QH10003 Qhull error. See stderr or errfile."
);
}
/* exit */
/*-<a href="qh-user_r.htm#TOC"
>-------------------------------</a><a name="qh_fprintf_stderr">-</a>
qh_fprintf_stderr( msgcode, format, list of args )
fprintf to stderr with msgcode (non-zero)
notes:
qh_fprintf_stderr() is called when qh->ferr is not defined, usually due to an initialization error
It is typically followed by qh_errexit().
Redefine this function to avoid using stderr
Use qh_fprintf [userprintf_r.c] for normal printing
*/
void
qh_fprintf_stderr
(
int
msgcode
,
const
char
*
fmt
,
...
)
{
va_list
args
;
va_start
(
args
,
fmt
);
if
(
msgcode
)
fprintf
(
stderr
,
"QH%.4d "
,
msgcode
);
vfprintf
(
stderr
,
fmt
,
args
);
va_end
(
args
);
}
/* fprintf_stderr */
/*-<a href="qh-user_r.htm#TOC"
>-------------------------------</a><a name="qh_free">-</a>
qh_free(qhT *qh, mem )
free memory
notes:
same as free()
No calls to qh_errexit()
*/
void
qh_free
(
void
*
mem
)
{
free
(
mem
);
}
/* free */
/*-<a href="qh-user_r.htm#TOC"
>-------------------------------</a><a name="qh_malloc">-</a>
qh_malloc( mem )
allocate memory
notes:
same as malloc()
*/
void
*
qh_malloc
(
size_t
size
)
{
return
malloc
(
size
);
}
/* malloc */
Event Timeline
Log In to Comment