comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/unicode/gender.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 69:33d812a61356
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2008-2013, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 *******************************************************************************
8 *
9 *
10 * File GENDER.H
11 *
12 * Modification History:*
13 * Date Name Description
14 *
15 ********************************************************************************
16 */
17
18 #ifndef _GENDER
19 #define _GENDER
20
21 /**
22 * \file
23 * \brief C++ API: GenderInfo computes the gender of a list.
24 */
25
26 #include "unicode/utypes.h"
27
28 #if U_SHOW_CPLUSPLUS_API
29
30 #if !UCONFIG_NO_FORMATTING
31
32 #include "unicode/locid.h"
33 #include "unicode/ugender.h"
34 #include "unicode/uobject.h"
35
36 class GenderInfoTest;
37
38 U_NAMESPACE_BEGIN
39
40 /** \internal Forward Declaration */
41 void U_CALLCONV GenderInfo_initCache(UErrorCode &status);
42
43 /**
44 * GenderInfo computes the gender of a list as a whole given the gender of
45 * each element.
46 * @stable ICU 50
47 */
48 class U_I18N_API GenderInfo : public UObject {
49 public:
50
51 /**
52 * Provides access to the predefined GenderInfo object for a given
53 * locale.
54 *
55 * @param locale The locale for which a <code>GenderInfo</code> object is
56 * returned.
57 * @param status Output param set to success/failure code on exit, which
58 * must not indicate a failure before the function call.
59 * @return The predefined <code>GenderInfo</code> object pointer for
60 * this locale. The returned object is immutable, so it is
61 * declared as const. Caller does not own the returned
62 * pointer, so it must not attempt to free it.
63 * @stable ICU 50
64 */
65 static const GenderInfo* U_EXPORT2 getInstance(const Locale& locale, UErrorCode& status);
66
67 /**
68 * Determines the gender of a list as a whole given the gender of each
69 * of the elements.
70 *
71 * @param genders the gender of each element in the list.
72 * @param length the length of gender array.
73 * @param status Output param set to success/failure code on exit, which
74 * must not indicate a failure before the function call.
75 * @return the gender of the whole list.
76 * @stable ICU 50
77 */
78 UGender getListGender(const UGender* genders, int32_t length, UErrorCode& status) const;
79
80 /**
81 * Destructor.
82 *
83 * @stable ICU 50
84 */
85 virtual ~GenderInfo();
86
87 private:
88 int32_t _style;
89
90 /**
91 * Copy constructor. One object per locale invariant. Clients
92 * must never copy GenderInfo objects.
93 */
94 GenderInfo(const GenderInfo& other);
95
96 /**
97 * Assignment operator. Not applicable to immutable objects.
98 */
99 GenderInfo& operator=(const GenderInfo&);
100
101 GenderInfo();
102
103 static const GenderInfo* getNeutralInstance();
104
105 static const GenderInfo* getMixedNeutralInstance();
106
107 static const GenderInfo* getMaleTaintsInstance();
108
109 static const GenderInfo* loadInstance(const Locale& locale, UErrorCode& status);
110
111 friend class ::GenderInfoTest;
112 friend void U_CALLCONV GenderInfo_initCache(UErrorCode &status);
113 };
114
115 U_NAMESPACE_END
116
117 #endif /* #if !UCONFIG_NO_FORMATTING */
118
119 #endif /* U_SHOW_CPLUSPLUS_API */
120
121 #endif // _GENDER
122 //eof