This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
inline __isctype no longer available for C++ programs
- From: Ryan S Arnold <rsa at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Thu, 08 Aug 2013 10:55:52 -0500
- Subject: inline __isctype no longer available for C++ programs
Hi All, the following git commit adds support for optimized/inlined
isXXX functions in C++ code such as isupper and isalpha.
>From 396a21b1d016c52e011f8921e0728aa62a1e9df0 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@gmail.com>
Date: Fri, 14 Oct 2011 18:46:12 -0400
Subject: [PATCH] Support optimized isXXX functions in C++ code
http://www.sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=396a21b1d016c52e011f8921e0728aa62a1e9df0
A side effect is that the patch also removes availability of the
__isctype inline macro from usage for C++ programs but it's still there
for C programs.
The isctype function is still available but this is not inline. I
realize that __isctype is not a published interface, but there are
existing C++ programs which, for performance reasons and due to
historical lack of optimized/inlined isXXX functions, use
__isctype(c,type) where they expect to use TYPE as a mask rather than
simply querying individual characteristics, one after another using the
isXXX functions.
For example:
int is = __isctype('a',_ISupper | _ISalpha);
rather than:
int is = isupper(a) | isalpha(a);
Is there a reason to continue to make __isctype unavailable for C++ programs?
Ryan S. Arnold
IBM Linux Technology Center