C規格の処理系定義の動作++
C++ではなくC を使用している場合は、C規格の処理系定義の動作 または C89の処理系定義の動作をそれぞれ参照してください。
説明
ここでは、C+17規格と同順で各項目を説明します。各項目(括弧内)では、コンパイラ(リンカを含むなど)または1つまたは両方のライブラリに関連しているかどうかを示しています。各ヘディングは、処理系定義の動作を説明するISOの章/セクションのリファレンスで始まります。C++14標準に関連するリファレンスがある場合は、それも各項目に記載されています。
A corresponding reference to the C++14 and or C++20 standard is given for each entry, if one exists. The section numbers in the references refer to the C++14 standard (document number N4140) and the C++20 standard (document number N4868). An implementation that is only present in C++14 is included in the list only if it is related to the library.
注記
IAR の実装は、標準C++ のフリースタンディング実装に準拠しています。すなわち、標準ライブラリの一部を実装から除外できます。コンパイラは、C++標準以降の一部の追加機能があるC++17標準に準拠します。
#pragma
See 認識されているプラグマディレクティブ (6.10.6) for the full list.
C++14 reference: 16.6 [cpp.pragma]
C++20 reference: 15.9 [cpp.pragma]
additional execution policies supported by parallel algorithms
Parallel algorithms are not supported.
C++20 reference: 20.18.3 [execpol.type]
additional file_type enumerators for file systems supporting additional types of file
The <filesystem> header is not supported.
C++20 reference: 29.11.10.1 [fs.enum.file.type]
additional formats for time_get::do_get_date
No additional formats are accepted for time_get::do_get_date.
C++14 reference: 22.4.5.1.2 [locale.time.get.virtuals]
C++20 reference: 28.4.5.1.2 [locale.time.get.virtuals]
additional supported forms of preprocessing directive
The preprocessor directives #warning and #include_next are supported.
C++20 reference: 15.1 [cpp.pre]
algorithms for producing the standard random number distributions
A linear congruential engine produces the standard random number distributions.
C++20 reference: 26.6.1 [rand.dist.general]
alignment
See アライメント.
C++14 reference: 3.11 [basic.align]
C++20 reference: 6.7.6 [basic.align]
alignment additional values
See アライメント.
C++14 reference: 3.11 [basic.align]
C++20 reference: 6.7.6 [basic.align]
alignment of bit-fields within a class object
See ビットフィールド.
C++14 reference: 9.6 [class.bit]
C++20 reference: 11.4.10 [class.bit]
allocation of bit-fields within a class object
See ビットフィールド.
C++14 reference: 9.6 [class.bit]
C++20 reference: 11.4.10 [class.bit]
any use of an invalid pointer other than to perform indirection or deallocate
Any use of an invalid pointer other than indirection through it and passing it to a deallocation function works as for a valid pointer.
C++20 reference: 6.7.5.1 [basic.stc.general]
argument values to construct basic_ios::failure / ios_base::failure
When basic_ios::clear throws an exception, it throws an exception of type basic_ios::failure (C++14) / ios_base::failure (C++20) constructed with the badbit/failbit/eofbit set.
C++14 reference: 27.5.3.1.5 [iostate.flags]
C++20 reference: 29.5.3.4 [iostate.flags]
assignability of placeholder objects
Placeholder objects are CopyAssignable.
C++14 reference: 20.9.9.4 [func.bind.place]
C++20 reference: 20.14.15.5 [func.bind.place]
behavior of iostream classes when traits::pos_type is not streampos or when traits::off_type is not streamoff
No specific behavior has been implemented for this case.
C++14 reference: 27.2 [iostreams.limits.pos]
C++20 reference: 29.2 [iostreams.limits.pos]
behavior of non-standard attributes
See 拡張キーワード for a list of supported attributes.
C++14 reference: 7.6.1 [dcl.attr.grammar]
C++20 reference: 9.12.1 [dcl.attr.grammar]
behavior of strstreambuf::setbuf
This function has no effect.
C++20 reference: D.10.4 [depr.strstreambuf.virtuals]
bits in a byte
A byte contains 8 bits.
C++14 reference: 1.7 [intro.memory]
C++20 reference: 6.7.1 [intro.memory]
choice of larger or smaller value of floating-point-literal
For a floating-point literal whose scaled value cannot be represented as a floating-point value, the nearest even floating-point value is chosen.
C++14 reference: 2.14.4 [lex.fcon]
C++20 reference: 5.13.4 [lex.fcon]
concatenation of some types of string-literals
Differently prefixed string literal tokens cannot be concatenated, except for those specified by the ISO C++ standard.
C++14 reference: 2.14.5 [lex.string]
C++20 reference: 5.13.5 [lex.string]
conversions between pointers and integers
See キャスト.
C++14 reference: 5.2.10 [expr.reinterpret.cast]
C++20 reference: 7.6.1.10 [expr.reinterpret.cast]
converting characters from source character set to execution character set
The source character set is the set of legal characters that can appear in source files; by default Raw (ASCII). The execution character sets are: L → UTF-32, u → UTF-16, U → UTF-32, u8 → UTF-8, no prefix → the source character set.
C++14 reference: 2.2 [lex.phases]
C++20 reference: 5.2 [lex.phases]
converting function pointer to object pointer and vice versa
See キャスト.
C++14 reference: 5.2.10 [expr.reinterpret.cast]
C++20 reference: 7.6.1.10 [expr.reinterpret.cast]
default configuration of a pool
The default values of the pool_options max_blocks_per_chunk and largest_required_pool_block are 1 << 20 for architectures where size_t can represent 0x0100000, otherwise the defaultvalues are 1 << 10.
C++20 reference: 20.12.5.4 [mem.res.pool.mem]
default next_buffer_size for a monotonic_buffer_resource
The default next buffer size is 1024.
C++20 reference: 20.12.6.2 [mem.res.monotonic.buffer.ctor]
default number of buckets in unordered_map
The IAR C/C++ Compiler makes a default construction of the unordered_map before inserting the elements.
C++14 reference: 23.5.4.2 [unord.map.cnstr]
C++20 reference: 22.5.4.2 [unord.map.cnstr]
default number of buckets in unordered_multimap
The IAR C/C++ Compiler makes a default construction of the unordered_multimap before inserting the elements.
C++14 reference: 23.5.5.2 [unord.multimap.cnstr]
C++20 reference: 22.5.5.2 [unord.multimap.cnstr]
default number of buckets in unordered_multiset
The IAR C/C++ Compiler makes a default construction of the unordered_multiset before inserting the elements.
C++14 reference: 23.5.7.2 [unord.multiset.cnstr]
C++20 reference: 22.5.7.2 [unord.multiset.cnstr]
default number of buckets in unordered_set
The IAR C/C++ Compiler makes a default construction of the unordered_set before inserting the elements.
C++14 reference: 23.5.6.2 [unord.set.cnstr]
C++20 reference: 22.5.6.2 [unord.set.cnstr]
defining main in freestanding environment
The main function must be defined.
C++14 reference: 3.6.1 [basic.start.main]
C++20 reference: 6.9.3.1 [basic.start.main]
definition and meaning of __STDC__
__STDC__ is predefined to 1.
C++14 reference: 16.8 [cpp.predefined]
C++20 reference: 15.11 [cpp.predefined]
definition and meaning of __STDC_VERSION__
__STDC_VERSION__ is predefined to 201710L.
C++14 reference: 16.8 [cpp.predefined]
C++20 reference: 15.11 [cpp.predefined]
definition of NULL
NULL is predefined as 0.
C++20 reference: 17.2.3 [support.types.nullptr]
derived type for typeid
The type of a typeid expression is an expression with dynamic type std::type_info.
C++14 reference: 5.2.8 [expr.typeid]
C++20 reference: 7.6.1.8 [expr.typeid]
diagnostic message
Diagnostics are produced in the form:
filename,linenumberlevel[tag]:message
where level is one of remark, warning, error, or fatal error.
C++14 reference: 1.3.6 [defns.diagnostic]
C++20 reference: 3.10 [defns.diagnostic]
dynamic initialization of static inline variables before main
Static inline variables are initialized before the first statement of main, except when the linker option ‑‑manual_dynamic_initialization is used.
C++20 reference: 6.9.3.3 [basic.start.dynamic]
dynamic initialization of static variables/static objects before main
Static variables are initialized before the first statement of main, except when the linker option ‑‑manual_dynamic_initialization is used.
C++14 reference: 3.6.2 [basic.start.init]
C++20 reference: 6.9.3.3 [basic.start.dynamic]
dynamic initialization of thread-local variables/objects before entry
By default, the IAR runtime environment does not support more than one thread of execution. Thread-local variables are treated as static variables except when the linker option ‑‑threaded_lib is used, in which case they are initialized by the RTOS.
C++14 reference: 3.6.2 [basic.start.init]
C++20 reference: 6.9.3.3 [basic.start.dynamic]
effect of calling associated Laguerre polynomials with n >= 128 or m >= 128
assoc_laguerre functions are not supported.
C++20 reference: 26.9.5.4 [sf.cmath.assoc.laguerre]
effect of calling associated Legendre polynomials with l >= 128
assoc_legendre functions are not supported.
C++20 reference: 26.9.5.5 [sf.cmath.assoc.legendre]
effect of calling basic_filebuf::setbuf with nonzero arguments
For Libc++, the supplied buffer will be used in the basic_filebuf. For DLIB, this will offer the buffer to the C stream by calling setvbuf() with the associated file. If anything goes wrong, the stream is reinitialized.
C++14 reference: 27.9.1.5 [filebuf.virtuals]
C++20 reference: 29.9.2 [filebuf.virtuals]
effect of calling basic_filebuf::sync when a get area exists
A get area cannot exist.
C++14 reference: 27.9.1.5 [filebuf.virtuals]
C++20 reference: 29.9.2 [filebuf.virtuals]
effect of calling basic_streambuf::setbuf with nonzero arguments
This function has no effect.
C++14 reference: 27.8.2.4 [stringbuf.virtuals]
C++20 reference: 29.8.2.4 [stringbuf.virtuals]
effect of calling cylindrical Bessel functions of the first kind with nu >= 128
cyl_bessel_j functions are not supported.
C++20 reference: 26.9.5.6 [sf.cmath.cyl.bessel.j]
effect of calling cylindrical Neumann functions with nu >= 128
cyl_neumann functions are not supported.
C++20 reference: 26.9.5.8 [sf.cmath.cyl.neumann]
effect of calling Hermite polynomials with n >= 128
hermite functions are not supported.
C++20 reference: 26.9.5.9 [sf.cmath.hermite]
effect of calling ios_base::sync_with_stdio after any input or output operation on standard streams
Previous input/output is not handled in any special way.
C++14 reference: 27.5.3 [ios.members.static]
C++20 reference: 29.5.3.3 [ios.members.static]
effect of calling irregular modified cylindrical Bessel functions with nu >= 128
cyl_bessel_k functions are not supported.
C++20 reference: 26.9.5.7 [sf.cmath.cyl.bessel.k]
effect of calling Laguerre polynomials with n >= 128
laguerre functions are not supported.
C++20 reference: 26.9.5.10 [sf.cmath.laguerre]
effect of calling Legendre polynomials with l >= 128
legendre functions are not supported.
C++20 reference: 26.9.5.11 [sf.cmath.legendre]
effect of calling regular modified cylindrical Bessel functions with nu >= 128
cyl_bessel_i functions are not supported.
C++20 reference: 26.9.5.12 [sf.cmath.cyl.bessel.i]
effect of calling spherical associated Legendre functions with l >= 128
sph_legendre functions are not supported.
C++20 reference: 26.9.5.15 [sf.cmath.sph.legendre]
effect of calling spherical Bessel functions with n >= 128
sph_bessel functions are not supported.
C++20 reference: 26.9.5.13 [sf.cmath.sph.bessel]
effect of calling spherical Neumann functions with n >= 128
sph_neumann functions are not supported.
C++20 reference: 26.9.5.14 [sf.cmath.sph.neumann]
effect of filesystem::copy
The <filesystem> header is not supported.
C++20 reference: 29.11.14.4 [fs.op.copy]
effect on C locale of calling locale::global
Calling this function with an unnamed locale has no effect.
C++14 reference: 22.3.1.5 [locale.statics]
C++20 reference: 28.3.1.5 [locale.statics]v
encoding of universal character name not in execution character set
A diagnostic message is issued.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
error_category for errors originating outside the operating system
There is no additional error category.
C++14 reference: 17.6.5.14 [value.error.codes]
C++20 reference: 16.4.6.15 [value.error.codes]
exception type when random_device constructor fails
The constructor cannot fail.
C++20 reference: 26.6.9 [rand.device]
exception type when random_device::operator() fails
operator() cannot fail.
C++20 reference: 26.6.9 [rand.device]
exception type when shared_ptr constructor fails
Only std::bad_alloc is thrown.
C++14 reference: 20.8.2.2.1 [util.smartptr.shared.const]
C++20 reference: 20.11.3.2 [util.smartptr.shared.const]
exceptions thrown by standard library functions that do not have an exception specification / that have a potentially-throwing exception specification
These functions do not throw any additional exceptions.
C++14 reference: 17.6.5.12 [res.on.exception.handling]
C++20 reference: 16.4.6.13 [res.on.exception.handling]
execution character set and execution wide-character set
The values of the members of the execution character set are the values of the ASCII character set, which can be augmented by the values of the extra characters in the source file character set. The wide character set consists of all the code points defined by ISO/IEC 10646.
C++14 reference: 2.3 [lex.charset]
C++20 reference: 5.3 [lex.charset]
exit status
Control is returned to the __exit library function.
C++14 reference: 18.5 [support.start.term]
C++20 reference: 17.5 [support.start.term]
extended signed integer types
No extended signed integer types exist in the implementation.
C++14 reference: 3.9.1 [basic.fundamental]
C++20 reference: 6.8.2 [basic.fundamental]
file type of the file argument of filesystem::status
The <filesystem> header is not supported.
C++20 reference: 29.11.14.32 [fs.op.status]
formatted character sequence generated by time_put::do_put in C locale
The behavior is the same as that of the library function strftime.
C++14 reference: 22.4.5.3.2 [locale.time.put.virtuals]
C++20 reference: 28.4.5.3.2 [locale.time.put.virtuals]
forward progress guarantees for implicit threads of parallel algorithms (if not defined for thread)
Parallel algorithms are not supported.
C++20 reference: 25.3.3 [algorithms.parallel.exec]
growth factor for monotonic_buffer_resource
monotonic_buffer_resource is not supported.
C++20 reference: 20.12.6.2 [mem.res.monotonic.buffer.ctor]
headers for freestanding implementation
See C++ヘッダファイル and サポートされてないC/C++関数 for information about which Standard C++ system headers that are not supported.
C++14 reference: 17.6.1.3 [compliance]
C++20 reference: 16.4.2.4 [compliance]
how random_device::operator() generates values
random_device::operator() generates values using std::rand().
C++20 reference: 26.6.9 [rand.device]
how the set of importable headers is determined
Modules are not supported.
C++20 reference: 10.3 [module.import]
interactive device
The streams stdin, stdout, and stderr are treated as interactive devices.
C++14 reference: 1.9 [intro.execution]
C++20 reference: 4.1.2 [intro.abstract]
interpretation of the path character sequence with format path::auto_format
The <filesystem> header is not supported.
C++20 reference: 29.11.10.2 [fs.enum.path.format]
largest supported value to configure the largest allocation satisfied directly by a pool
Pool resource objects are not supported.
C++20 reference: 20.12.5.2 [mem.res.pool.options]
largest supported value to configure the maximum number of blocks to replenish a pool
Pool resource objects are not supported.
C++20 reference: 20.12.5.2 [mem.res.pool.options]
linkage of main
The main function has external linkage.
C++14 reference: 3.6.1 [basic.start.main]
C++20 reference: 6.9.3.1 [basic.start.main]
linkage of names from C standard library
Declarations from the C library have "C" linkage.
C++14 reference: 17.6.2.3 [using.linkage]
C++20 reference: 16.4.3.3 [using.linkage]
linkage of objects between C++ and other languages
They should have "C" linkage.
C++20 reference: 9.11 [dcl.link]
locale names
See ロケール for the list of supported locale names.
C++14 reference: 22.3.1.2 [locale.cons]
C++20 reference: 28.3.1.2 [locale.cons]
lvalue-to-rvalue conversion of an invalid pointer value
The conversion is made, but it is undefined what happens if the pointer value is used.
C++20 reference: 7.3.2 [conv.lval]
manner of search for included source file
See インクルードファイル検索手順.
C++14 reference: 16.2 [cpp.include]
C++20 reference: 15.3 [cpp.include]
mapping from name to catalog when calling messages::do_open
No mapping occurs because this function does not open a catalog.
C++14 reference: 22.4.7.1.2 [locale.messages.virtuals]
C++20 reference: 28.4.7.1.2 [locale.messages.virtuals]
mapping from physical source file characters to basic source character set
The source character set is the same as the physical source file multibyte character set. By default, the standard ASCII character set is used; it can also be UTF-8, UTF-16, or the system locale.
C++14 reference: 2.3 [lex.charset]
C++20 reference: 5.3 [lex.charset]
mapping header name to header or external source file
The header name is interpreted and mapped into an external source file in the most intuitive way. Both forms of #include map to external header source file names.
C++14 reference: 2.9 [lex.header]
C++20 reference: 5.8 [lex.header]
mapping of pointer to integer
See キャスト.
C++20 reference: 7.6.1.10 [expr.reinterpret.cast]
mapping physical source file characters to basic source character set
The source character set is the same as the physical source file multibyte character set. By default, the standard ASCII character set is used; it can also be UTF-8, UTF-16, or the system locale.
C++14 reference: 2.2 [lex.phases]
C++20 reference: 5.2 [lex.phases]
mapping to message when calling messages::do_get
No mapping occurs because this function does not open a catalog. dflt is returned.
C++14 reference: 22.4.7.1.2 [locale.messages.virtuals]
C++20 reference: 28.4.7.1.2 [locale.messages.virtuals]
maximum depth of recursive template instantiations
The default maximum depth is 64. To change it, use the compiler option --pending_instantiations.
C++20 reference: 13.9.2 [temp.inst]
maximum size of an allocated object
The maximum size of an allocated object is theoretically the maximum value of size_t, but in practice it is bounded by how much memory is allocated to the heap. See ヒープメモリの設定.
C++20 reference: 7.6.2.8 [expr.new]
meaning of ', \\, /*, or // in a q-char-sequence or an h-char-sequence
Characters in a q-char-sequence and an h-char-sequence are interpreted as a string literal.
C++20 reference: 5.8 [lex.header]
meaning of asm declaration
An asm declaration enables the direct use of assembler instructions.
C++14 reference: 7.4 [dcl.asm]
C++20 reference: 9.10 [dcl.asm]
meaning of attribute declaration
See 拡張キーワード for supported attributes.
C++14 reference: 7 [dcl.dcl]
C++20 reference: 9.1 [dcl.pre]
meaning of dot-dot in root-directory
The <filesystem> header is not supported.
C++20 reference: 29.11.6.2 [fs.path.generic]
negative value of character-literal in preprocessor
A plain char is treated as an unsigned char by default. If char is treated as signed (by using the option ‑‑char_is_signed), then character literals in #if and #elif preprocessing directives can be negative.
C++14 reference: 16.1 [cpp.cond]
C++20 reference: 15.2 [cpp.cond]
nesting limit for #include directives
The amount of available memory sets the limit.
C++14 reference: 16.2 [cpp.include]
C++20 reference: 15.3 [cpp.include]
NTCTS in basic_ostream<charT, traits>& operator<<(nullptr_t)
s is nullptr.
C++20 reference: 29.7.5 [ostream.inserters]
number of placeholders for bind expressions
There are ten placeholder objects.
C++20 reference: 20.14.2 [functional.syn]
number of threads in a program under a freestanding implementation
By default, the IAR runtime environment does not support more than one thread of execution. With an optional third-party RTOS, it might support several threads.
C++14 reference: 1.10 [intro.multithread]
C++20 reference: 6.9.2.1 [intro.multithread.general]
numeric values of character-literals in #if directives
Numeric values of character literals in the #if and #elif preprocessing directives match the values that they have in other expressions.
C++14 reference: 16.1 [cpp.cond]
C++20 reference: 15.2 [cpp.cond]
operating system on which implementation depends
The <filesystem> header is not supported.
C++20 reference: 29.11.2 [fs.conform.os]
parameters to main
The only two permitted definitions for main are int main() and int main(int, char **).
C++14 reference: 3.6.1 [basic.start.main]
C++20 reference: 6.9.3.1 [basic.start.main]
passing argument of class type through ellipsis
The result is a diagnostic and is then treated as a trivially copyable object.
C++14 reference: 5.2.2 [expr.call]
C++20 reference: 7.6.1.3 [expr.call]
physical source file characters
The source character set is the same as the physical source file multibyte character set. By default, standard ASCII is used; it can also be UTF-8, UTF-16, or the system locale.
C++14 reference: 2.2 [lex.phases]
C++20 reference: 5.2 [lex.phases]
presence and meaning of native_handle_type and native_handle
The <thread> system header is not supported.
C++14 reference: 30.2.3 [thread.req.native]
C++20 reference: 32.2.3 [thread.req.native]
range defined for character-literals
The range is the same as for an int.
C++20 reference: 5.13.3 [lex.ccon]
rank of extended signed integer type
The implementation has no extended signed integer types.
C++14 reference: 4.13 [conv.rank]
C++20 reference: 6.8.5 [conv.rank]
required alignment for atomic_ref type's operations
atomic_ref is not supported.
C++20 reference: 31.8.1 [atomics.ref.generic.general]
required libraries for freestanding implementation
See C++ヘッダファイル and サポートされてないC/C++関数.
C++14 reference: 1.4 [intro.compliance]
C++20 reference: 4.1.1 [intro.compliance.general]
resource limits on a message catalog
The message catalog is not supported.
C++14 reference: 22.4.7.1.2 [locale.messages.virtuals]
C++20 reference: 28.4.7.1.2 [locale.messages.virtuals]
result of exception::what / return value of exception::what
For Libc++, the return value is a pointer to "unknown". For DLIB, the return value is a pointer to std::exception.
C++14 reference: 18.8.1 [exception]
C++20 reference: 17.9.3 [exception]
result of filesystem::file_size
The <filesystem> header is not supported.
C++20 reference: 29.11.14.10 [fs.op.file.size]
result of inexact floating-point conversion
When a floating-point value is converted to a different floating-point type and cannot be represented exactly, the value is rounded to the nearest floating-point value by default.
C++14 reference: 4.8 [conv.double]
C++20 reference: 7.3.10 [conv.double]
return value of bad_alloc::what
The return value is a pointer to "bad allocation".
C++14 reference: 18.6.2.1 [bad.alloc]
C++20 reference: 17.6.4.1 [bad.alloc]
return value of bad_any_cast::what
The return value is a pointer to "bad any cast".
C++20 reference: 20.8.3 [any.bad.any.cast]
return value of bad_array_new_length::what
For Libc++, the return value is a pointer to "bad array new length". For DLIB, the return value is a pointer to "bad allocation".
C++20 reference: 17.6.4.2 [new.badlength]
return value of bad_cast::what
The return value is a pointer to "bad cast".
C++14 reference: 18.7.2 [bad.cast]
C++20 reference: 17.7.4 [bad.cast]
return value of bad_exception::what
The return value is a pointer to "bad exception".
C++14 reference: 18.8.2 [bad.exception]
C++20 reference: 17.9.4 [bad.exception]
return value of bad_function_call::what
The return value is a pointer to std::bad_function_call.
C++20 reference: 20.14.17.2 [func.wrap.badcall]
return value of bad_optional_access::what
The return value is a pointer to bad_optional_access.
C++20 reference: 20.6.5 [optional.bad.access]
return value of bad_typeid::what
The return value is a pointer to "bad typeid".
C++14 reference: 18.7.3 [bad.typeid]
C++20 reference: 17.7.5 [bad.typeid]
return value of bad_variant_access::what
The return value is a pointer to bad_variant_access.
C++20 reference: 20.7.11 [variant.bad.access]
return value of bad_weak_ptr::what
The return value is a pointer to bad_weak_ptr.
C++20 reference: 20.11.2 [util.smartptr.weak.bad]
return value of char_traits<char16_t>::eof
The return value of char_traits<char16_t>::eof is EOF.
C++14 reference: 21.2.3.2 [char.traits.specializations.char16_t]
C++20 reference: 21.2.4.4 [char.traits.specializations.char16.t]
return value of char_traits<char32_t>::eof
The return value of char_traits<char32_t>::eof is EOF.
C++14 reference: 21.2.3.3 [char.traits.specializations.char32_t]
C++20 reference: 21.2.4.5 [char.traits.specializations.char32.t]
return value of type_info::name()
The return value is a pointer to a C string containing the name of the type.
C++14 reference: 18.7.1 [type.info]
C++20 reference: 17.7.3 [type.info]
search locations for <> header
See インクルードファイル検索手順.
C++14 reference: 16.2 [cpp.include]
C++20 reference: 15.3 [cpp.include]
search locations for "" header
See インクルードファイル検索手順.
C++14 reference: 16.2 [cpp.include]
C++20 reference: 15.3 [cpp.include]
semantics of an access through a volatile glvalue
See オブジェクトのvolatile宣言.
C++20 reference: 9.2.9.2 [dcl.type.cv]
semantics of linkage specification on templates
Only the string-literals "C" and "C++" can be used in a linkage specifier.
C++14 reference: 14 [temp]
C++20 reference: 13.1 [temp.pre]
semantics of linkage specifiers
Only the string-literals "C" and "C++" can be used in a linkage specifier.
C++14 reference: 7.5 [dcl.link]
C++20 reference: 9.11 [dcl.link]
semantics of non-standard escape sequences
No non-standard escape sequences are supported.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
semantics of parallel algorithms invoked with implementation-defined execution policies
Parallel algorithms are not supported.
C++20 reference: 25.3.3 [algorithms.parallel.exec]
semantics of token parameter and default token value used by random_device constructors
The token is not used.
C++20 reference: 26.6.9 [rand.device]
sequence of places searched for a header
See インクルードファイル検索手順.
C++14 reference: 16.2 [cpp.include]
C++20 reference: 15.3 [cpp.include]
set of character types that iostreams templates can be instantiated for
iostreams templates can be instantiated for char, char16_t, char32_t, and wchar_t.
C++14 reference: 22.3.1.1.1 [locale.category]
C++20 reference: 28.3.1.1.1 [locale.category]
signedness of char
A plain char is treated as an unsigned char by default. This can be controlled using the options ‑‑char_is_signed and ‑‑char_is_unsigned.
C++14 reference: 3.9.1 [basic.fundamental]
C++20 reference: 9.2.9.3 [dcl.type.simple]
sizeof applied to fundamental types other than char, signed char, and unsigned char
See 基本データ型整数型, 基本データ型浮動小数点数型, and ポインタ型.
C++14 reference: 5.3.3 [expr.sizeof]
C++20 reference: 7.6.2.5 [expr.sizeof]
stack unwinding before call to std::terminate()
When no suitable catch handler is found, the stack is not unwound before calling std::terminate().
C++14 reference: 15.3 [except.handle]
C++20 reference: 14.4 [except.handle]
start-up and termination in freestanding environment
See アプリケーションの実行 — 概要 and システムの起動と終了 for descriptions of the startup and termination of applications.
C++14 reference: 3.6.1 [basic.start.main]
C++20 reference: 6.9.3.1 [basic.start.main]
strict total order over pointer values
For any two pointers P0, P1 of the same pointer type, P0 < P1 is true if and only if reinterpret_cast<uintptr_t>(P0) < reinterpret_cast<uintptr_t>(P1).
C++20 reference: 3.37 [defns.order.ptr]
string resulting from __func__
The value of __func__ is the C++ function name.
C++14 reference: 8.4.1 [dcl.fct.def.general]
C++20 reference: 9.5.1 [dcl.fct.def.general]
support for always lock-free integral atomic types in freestanding environments
C++20 atomics are not supported.
C++20 reference: 16.4.2.4 [compliance]
support for extended alignments
Extended alignment is supported.
C++14 reference: 20.10.7.6 [meta.trans.other]
C++20 reference: 6.7.6 [basic.align]
support for module-import-declarations with non-C++ language linkage
Modules are not supported.
C++20 reference: 9.11 [dcl.link]
support for over-aligned types
Over-aligned types are supported in new expressions and by the default allocator.
C++14 reference: 5.3.4 [expr.new]
supported multibyte character encoding rules
See ロケール.
C++14 reference: 21.2.3.1 [char.traits.specializations.char]
C++20 reference: 21.2.4.2 [char.traits.specializations.char]
supported root-names in addition to any operating system dependent root-names
The <filesystem> header is not supported.
C++20 reference: 29.11.6.2 [fs.path.generic]
text of __DATE__ when date of translation is not available
The date of the translation is always available.
C++14 reference: 16.8 [cpp.predefined]
C++20 reference: 15.11 [cpp.predefined]
text of __TIME__ when time of translation is not available
The time of the translation is always available.
C++14 reference: 16.8 [cpp.predefined]
C++20 reference: 15.11 [cpp.predefined]
threads and program points at which deferred dynamic initialization is performed
Dynamic initialization is not deferred, except when the linker option ‑‑manual_dynamic_initialization is used.
C++20 reference: 6.9.3.3 [basic.start.dynamic]
type aliases atomic_signed_lock_free and atomic_unsigned_lock_free in freestanding environments
C++20 atomics are not supported.
C++20 reference: 16.4.2.4 [compliance]
type of a directory-like file
The <filesystem> header is not supported.
C++20 reference: 29.11.13.1 [fs.class.directory.iterator.general]
type of array::const_iterator
The type of array::const_iterator is T const *.
C++14 reference: 23.3.2.1 [array.overview]
C++20 reference: 22.3.7.1 [array.overview]
type of array::iterator
The type of array::iterator is T *.
C++14 reference: 23.3.2.1 [array.overview]
C++20 reference: 22.3.7.1 [array.overview]
type of basic_string::const_iterator
The type of basic_string::const_iterator is __wrap_iter<const_pointer>.
C++20 reference: 21.3.3.1 [basic.string.general]
type of basic_string::iterator
The type of basic_string::iterator is __wrap_iter<pointer>.
C++20 reference: 21.3.3.1 [basic.string.general]
type of basic_string_view::const_iterator
The type of basic_string_view::const_iterator is T const *.
C++20 reference: 21.4.3.1 [string.view.template.general]
type of default_random_engine
The type of default_random_engine is linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647>.
C++20 reference: 26.6.8 [rand.predef]
type of deque::const_iterator
The type of deque::const_iterator is __deque_iterator<T, const_pointer, T const&, __map_const_pointer, difference_type>.
C++20 reference: 22.3.8.1 [deque.overview]
type of deque::iterator
The type of deque::iterator is __deque_iterator<T, pointer, T&, __map_pointer, difference_type>.
C++20 reference: 22.3.8.1 [deque.overview]
type of forward_list::const_iterator
The type of forward_list::const_iterator is __base::const_iterator.
C++20 reference: 22.3.9.1 [forwardlist.overview]
type of forward_list::iterator
The type of forward_list::iterator is __base::iterator.
C++20 reference: 22.3.9.1 [forwardlist.overview]
type of ios_base::streamoff
The type of streamoff is long.
C++14 reference: D.6 [depr.ios.members]
type of ios_base::streampos
The type of streampos is std::fpos<mbstate_t>.
C++14 reference: D.6 [depr.ios.members]
type of list::const_iterator
The type of list::const_iterator is __list_const_iterator<value_type, __void_pointer>.
C++20 reference: 22.3.10.1 [list.overview]
type of list::iterator
The type of list::iterator is __list_iterator<value_type, __void_pointer>.
C++20 reference: 22.3.10.1 [list.overview]
type of map::const_iterator
The type of map::const_iterator is __map_const_iterator<typename __base::const_iterator>.
C++20 reference: 22.4.4.1 [map.overview]
type of map::iterator
The type of map::iterator is __map_iterator<typename __base::iterator>.
C++20 reference: 22.4.4.1 [map.overview]
type of multimap::const_iterator
The type of multimap::const_iterator is __map_const_iterator<typename __base::const_iterator>.
C++20 reference: 22.4.5.1 [multimap.overview]
type of multimap::iterator
The type of multimap::iterator is __map_iterator<typename __base::iterator>.
C++20 reference: 22.4.5.1 [multimap.overview]
type of multiset::const_iterator
The type of multiset::const_iterator is __base::const_iterator.
C++20 reference: 22.4.7.1 [multiset.overview]
type of multiset::iterator
The type of multiset::iterator is __base::const_iterator.
C++20 reference: 22.4.7.1 [multiset.overview]
type of ptrdiff_t
See ptrdiff_t.
C++14 reference: 5.7 [expr.add]
C++20 reference: 7.6.6 [expr.add]
type of regex_constants::error_type
The type is an enum. See enum型.
C++14 reference: 28.5.3 [re.err]
C++20 reference: 30.5.3 [re.err]
type of regex_constants::match_flag_type
The type of match_flag_type is enum. See enum型.
C++20 reference: 30.5.2 [re.matchflag]
type of set::const_iterator
The type of set::const_iterator is __base::const_iterator.
C++20 reference: 22.4.6.1 [set.overview]
type of set::iterator
The type of set::iterator is __base::const_iterator.
C++20 reference: 22.4.6.1 [set.overview]
type of size_t
See size_t.
C++14 reference: 18.2 [support.types]
C++20 reference: 17.2.4 [support.types.layout]
type of span::iterator
The type of span::iterator is __wrap_iter<pointer>.
C++20 reference: 22.7.3.1 [span.overview]
type of streamoff
The type of streamoff is long.
C++14 reference: 21.2.3.1 [char.traits.specializations.char]
type of streampos
The type of streampos is std::fpos<mbstate_t>.
C++14 reference: 21.2.3.1 [char.traits.specializations.char]
type of syntax_option_type
The type of syntax_option_type is enum. See enum型.
C++20 reference: 30.5.1 [re.synopt]
type of u16streampos
The type of u16streampos is streampos.
C++14 reference: 21.2.3.2 [char.traits.specializations.char16_t]
type of u32streampos
The type of u32streampos is streampos.
C++14 reference: 21.2.3.3 [char.traits.specializations.char32_t]
type of unordered_map::const_iterator
The type of unordered_map::const_iterator is __hash_map_const_iterator<typename __table::const_iterator>.
C++20 reference: 22.5.4.1 [unord.map.overview]
type of unordered_map::const_local_iterator
The type of unordered_map::const_local_iterator is __hash_map_const_iterator<typename __table::const_local_iterator>.
C++20 reference: 22.5.4.1 [unord.map.overview]
type of unordered_map::iterator
The type of unordered_map::iterator is __hash_map_iterator<typename __table::iterator>.
C++20 reference: 22.5.4.1 [unord.map.overview]
type of unordered_map::local_iterator
The type of unordered_map::local_iterator is __hash_map_iterator<typename __table::local_iterator>.
C++20 reference: 22.5.4.1 [unord.map.overview]
type of unordered_multimap::const_iterator
The type of unordered_multimap::const_iterator is __hash_map_const_iterator<typename __table::const_iterator>.
C++20 reference: 22.5.5.1 [unord.multimap.overview]
type of unordered_multimap::const_local_iterator
The type of unordered_multimap::const_local_iterator is __hash_map_const_iterator<typename __table::const_local_iterator>.
C++20 reference: 22.5.5.1 [unord.multimap.overview]
type of unordered_multimap::iterator
The type of unordered_multimap::iterator is __hash_map_iterator<typename __table::iterator>.
C++20 reference: 22.5.5.1 [unord.multimap.overview]
type of unordered_multimap::local_iterator
The type of unordered_multimap::local_iterator is __hash_map_iterator<typename __table::local_iterator>.
C++20 reference: 22.5.5.1 [unord.multimap.overview]
type of unordered_multiset::const_iterator
The type of unordered_multiset::const_iterator is __table::const_iterator.
C++20 reference: 22.5.7.1 [unord.multiset.overview]
type of unordered_multiset::const_local_iterator
The type of unordered_multiset::const_local_iterator is __table::const_local_iterator.
C++20 reference: 22.5.7.1 [unord.multiset.overview]
type of unordered_multiset::iterator
The type of unordered_multiset::iterator is __table::const_iterator.
C++20 reference: 22.5.7.1 [unord.multiset.overview]
type of unordered_multiset::local_iterator
The type of unordered_multiset::local_iterator is __table::const_local_iterator.
C++20 reference: 22.5.7.1 [unord.multiset.overview]
type of unordered_set::const_iterator
The type of unordered_set::const_iterator is __table::const_iterator.
C++20 reference: 22.5.6.1 [unord.set.overview]
type of unordered_set::const_local_iterator
The type of unordered_set::const_local_iterator is __table::const_local_iterator.
C++20 reference: 22.5.6.1 [unord.set.overview]
type of unordered_set::iterator
The type of unordered_set::iterator is __table::const_iterator.
C++20 reference: 22.5.6.1 [unord.set.overview]
type of unordered_set::local_iterator
The type of unordered_set::local_iterator is __table::const_local_iterator.
C++20 reference: 22.5.6.1 [unord.set.overview]
type of vector<bool>::const_iterator
The type of vector<bool>::const_iterator is const_pointer.
C++20 reference: 22.3.12 [vector.bool]
type of vector<bool>::iterator
The type of vector<bool>::iterator is pointer.
C++20 reference: 22.3.12 [vector.bool]
type of vector::const_iterator
The type of vector::const_iterator is __wrap_iter<const_pointer>.
C++20 reference: 22.3.11.1 [vector.overview]
type of vector::iterator
The type of vector::iterator is __wrap_iter<pointer>.
C++20 reference: 22.3.11.1 [vector.overview]
type of wstreampos
The type of wstreampos is streampos.
C++14 reference: 21.2.3.4 [char.traits.specializations.wchar.t]
underlying source of random numbers for random_shuffle
The underlying source is rand().
C++14 reference: D.8.4 [depr.alg.random.shuffle]
underlying type for enumeration
By default the smallest integer type that can hold the enumeration's values. The option ‑‑enum_is_int forces the type to be int. See enum型.
C++14 reference: 7.2 [dcl.enum]
C++20 reference: 9.7.1 [dcl.enum]
underlying type of bool
See 基本データ型整数型.
C++20 reference: 6.8.2 [basic.fundamental]
underlying type of char
A plain char is treated as unsigned char by default. This can be controlled using the options ‑‑char_is_signed and ‑‑char_is_unsigned.
C++20 reference: 6.8.2 [basic.fundamental]
underlying type of wchar_t
See wchar_t型.
C++20 reference: 6.8.2 [basic.fundamental]
unit suffix when Period::type is micro
The _units-suffix_ is us.
C++20 reference: 27.5.7 [time.duration.io]
use of non-POF function as signal handler
Non-Plain Old Functions (POF) can be used as signal handlers if no uncaught exceptions are thrown in the handler and the execution of the signal handler does not trigger undefined behavior.
C++14 reference: 18.10 [support.runtime]
value for least_max_value default template argument of counting_semaphore
The <semaphore> system header is not supported.
C++20 reference: 32.9 [thread.sema.cnt]
value of bit-field that cannot represent assigned value
The value is truncated to the correct number of bits.
C++20 reference: 7.6.19 [expr.ass]
value of bit-field that cannot represent incremented value
The value is truncated to the correct number of bits.
C++20 reference: 7.6.1.6 [expr.post.incr]
value of bit-field that cannot represent initializer
The value is truncated to the correct number of bits.
C++20 reference: 9.4.1 [dcl.init.general]
value of character-literal outside range of corresponding type
The value is truncated to fit the type.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
value of ctype<char>::table_size
The value of ctype<char>::table_size is 256.
C++14 reference: 22.4.1.3 [facet.ctype.special]
C++20 reference: 28.4.1.3.1 [facet.ctype.special.general]
value of has-attribute-expression for non-standard attributes
For non-standard attributes, supported under the currently selected mode, the value of has-attribute-expression is 1.
C++20 reference: 15.2 [cpp.cond]
value of has-attribute-expression for standard attributes
For each standard attribute, has-attribute-expression expands according to the table [tab:cpp.cond.ha] in [cpp.cond].
C++20 reference: 15.2 [cpp.cond]
value of multicharacter literal
An integer character constant that contains more than one character is treated as an integer constant. The value is calculated by treating the leftmost character as the most significant character and the rightmost as the least significant. A diagnostic is issued if the value cannot be represented in an integer constant.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
value of pow(0,0)
pow(0,0) produces an ERANGE and returns NaN.
C++20 reference: 26.7.7 [complex.transcendentals]
value of result of inexact integer to floating-point conversion
When an integer value is converted to a floating-point type and cannot be represented exactly, the value is rounded to the nearest floating-point value by default.
C++14 reference: 4.9 [conv.fpint]
C++20 reference: 7.3.11 [conv.fpint]
value of wide-character literal containing multiple characters
A diagnostic message is issued, and all but the first c-char is ignored.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
value of wide-character literal with single c-char that is not in execution wide-character set
All possible c-chars have a representation in the execution wide-character set.
C++14 reference: 2.14.3 [lex.ccon]
C++20 reference: 5.13.3 [lex.ccon]
value representation of floating-point types
See 基本データ型浮動小数点数型.
C++14 reference: 3.9.1 [basic.fundamental]
C++20 reference: 6.8.2 [basic.fundamental]
value representation of pointer types
See ポインタ型.
C++14 reference: 3.9.2 [basic.compound]
C++20 reference: 6.8.3 [basic.compound]
values of a trivially copyable type
All bits in basic types are part of the value representation. Padding between basic types is copied verbatim.
C++14 reference: 3.9 [basic.types]
C++20 reference: 6.8.1 [basic.types.general]
values of various ATOMIC_..._LOCK_FREE macros
In cases where atomic operations are supported, these macros will have the value 2. See アトミック処理.
C++14 reference: 29.4 [atomics.lockfree]
C++20 reference: 31.4 [atomics.lockfree]
whether <cfenv> functions can be used to manage floating-point status
See STDC FENV_ACCESS and 浮動小数点環境.
C++20 reference: 26.8.1 [cfenv.syn]
whether a given atomic type's operations are always lock free
See アトミック処理.
C++20 reference: 31.7.1 [atomics.types.generic.general]
whether a given atomic_ref type's operations are always lock free
atomic_ref is not supported.
C++20 reference: 31.8.1 [atomics.ref.generic.general]
whether an implementation has relaxed or strict pointer safety
The IAR implementation of Standard C++ has relaxed pointer safety.
C++14 reference: 3.7.4.3 [basic.stc.dynamic.safety]
C++20 reference: 6.7.5.5.4 [basic.stc.dynamic.safety]
whether functions from Annex K of the C standard library are declared when C++ headers are included
See C 境界チェックインターフェース.
C++20 reference: 16.4.2.3 [headers]
whether get_pointer_safety returns pointer_safety::relaxed or pointer_safety::preferred if the implementation has relaxed pointer safety
The function get_pointer_safety always returns std::pointer_safety::relaxed.
C++14 reference: 20.7.4 [util.dynamic.safety]
C++20 reference: 20.10.5 [util.dynamic.safety]
whether locale object is global or per-thread
There is one global locale object for the entire application.
C++14 reference: 22.3.1 [locale]
C++20 reference: 28.3 [locale.general]
whether pragma FENV_ACCESS is supported
See STDC FENV_ACCESS.
C++20 reference: 26.8.1 [cfenv.syn]
whether rand may introduce a data race
rand() does not introduce a data race.
C++20 reference: 26.10.1 [c.math.rand]
whether sequence pointers are copied by basic_filebuf move constructor
The constructor copies the sequence pointers.
C++14 reference: 27.9.1.1 [filebuf.cons]
C++20 reference: 29.9.1 [filebuf.cons]
whether sequence pointers are copied by basic_stringbuf move constructor
The constructor copies the sequence pointers.
C++14 reference: 27.8.1.1 [stringbuf.cons]
C++20 reference: 29.8.2.1 [stringbuf.cons]
whether sequence pointers are initialized to null pointers
The sequence pointers (eback(), gptr(), egptr(), pbase(), pptr(), epptr()) are not initialized to null pointers.
C++20 reference: 29.8.2.1 [stringbuf.cons]
whether source file inclusion of importable header is replaced with import directive
Modules are not supported.
C++20 reference: 15.3 [cpp.include]
whether source of translation units must be available to locate template definitions
When locating the template definition related to template instantiations, the source of the translation units that define the template is not required.
C++14 reference: 2.2 [lex.phases]
C++20 reference: 5.2 [lex.phases]
whether stack is unwound before calling std::terminate() when a noexcept specification is violated
When a noexcept specification is violated, the stack is not unwound before calling std::terminate().
C++14 reference: 15.5.1 [except.terminate]
C++20 reference: 14.6.2 [except.terminate]
whether the implementation is hosted or freestanding
The IAR implementation adheres to a freestanding implementation of Standard C++.
C++20 reference: 16.4.2.4 [compliance]
whether the lifetime of a parameter ends when the callee returns or at the end of the enclosing full-expression
The lifetime of a parameter ends when the callee returns.
C++20 reference: 7.6.1.3 [expr.call]
whether the sources for module units and header units on which the current translation unit has an interface dependency are required to be available during translation
Modules are not supported.
C++20 reference: 5.2 [lex.phases]
whether the thread that executes main and the threads created by std::thread or std::jthread provide concurrent forward progress guarantees
The <thread> system header is not supported.
C++20 reference: 6.9.2.3 [intro.progress]
whether time_get::do_get_year accepts two-digit year numbers
Two-digit year numbers are accepted by time_get::do_get_year. Years from 0 to 68 are parsed as 2000–2068, and years from 69 to 99 are parsed as 1969–1999.
C++14 reference: 22.4.5.1.2 [locale.time.get.virtuals]
C++20 reference: 28.4.5.1.2 [locale.time.get.virtuals]
whether values are rounded or truncated when converting between time_t values and time_point objects
Values are truncated to the required precision when converting between time_t values and time_point objects.
C++14 reference: 20.12.7.1 [time.clock.system]
C++20 reference: 27.7.3 [time.clock.system.members]
which functions in the C++ standard library may be recursively reentered
Functions can be recursively reentered, unless specified otherwise by the ISO C++ standard.
C++14 reference: 17.6.5.8 [reentrancy]
C++20 reference: 16.4.6.9 [reentrancy]
which non-standard-layout objects containing no data are considered empty
No non-standard-layout objects that contain no data are considered empty.
C++20 reference: 6.7.2 [intro.object]
which scalar types have unique object representations
All integer types, booleans, and characters have unique object representations.
C++20 reference: 20.15.5.4 [meta.unary.prop]
width of integral type
See 基本データ型整数型.
C++20 reference: 6.8.2 [basic.fundamental]