An adapter for copying a list of C++ strings into a list of C-style strings for passing to C code that expects argc/argv parameters. More...
Public Member Functions | |
constexpr | CStringList () noexcept |
Default construct, adding content later (via reset). More... | |
template<class StringType > | |
CStringList (const UList< StringType > &input) | |
Copy construct from a list of strings. More... | |
template<class StringType > | |
CStringList (const SubStrings< StringType > &input) | |
Copy construct from a list of sub-string references. More... | |
~CStringList () | |
Destructor. Invokes clear() to free memory. More... | |
bool | empty () const noexcept |
True if the size (ie, argc) is zero. More... | |
int | size () const noexcept |
Return the number of C-strings (ie, argc) More... | |
const char * | cdata_bytes () const noexcept |
The flattened character content, with interspersed nul-chars. More... | |
size_t | size_bytes () const noexcept |
Overall length of the flattened character (data) content including interspersed nul-chars but not the trailing nul-char. More... | |
const char * | data () const noexcept |
Same as cdata_bytes() More... | |
size_t | length () const noexcept |
Same as size_bytes() More... | |
const char * | get (int i) const |
Return string element at the given index. No bounds checking. More... | |
char ** | strings () const noexcept |
Return the list of C-strings (ie, argv) More... | |
char ** | strings (int start) const |
Return the sublist of C-strings (ie, argv) starting at the specified offset. More... | |
void | clear () |
Clear contents and free memory. More... | |
template<class StringType > | |
int | reset (const UList< StringType > &input) |
Copy the input list of strings. More... | |
template<class StringType > | |
int | reset (const SubStrings< StringType > &input) |
Copy the input list of strings. More... | |
const char * | operator[] (int i) const |
Return element at the given index. No bounds checking. More... | |
template<class StringType > | |
Foam::List< StringType > | asList (int argc, const char *const argv[]) |
template<class StringType > | |
Foam::List< StringType > | asList (const char *const argv[]) |
Static Public Member Functions | |
static int | count (const char *const argv[]) |
Count the number of parameters until the first nullptr. More... | |
template<class StringType > | |
static List< StringType > | asList (int argc, const char *const argv[]) |
Create a list from argc/argv parameters. More... | |
template<class StringType > | |
static List< StringType > | asList (const char *const argv[]) |
Create a list from a nullptr-terminated list of argv parameters. More... | |
An adapter for copying a list of C++ strings into a list of C-style strings for passing to C code that expects argc/argv parameters.
In addition to providing a C-compatible list of C-strings, the string lists are flattened into a single string of data that can be also be passed en mass.
Example use:
Definition at line 63 of file CStringList.H.
|
inlinenoexcept |
Default construct, adding content later (via reset).
Definition at line 56 of file CStringListI.H.
|
inlineexplicit |
Copy construct from a list of strings.
Copies the input characters.
Definition at line 66 of file CStringListI.H.
References Foam::input(), and CStringList::reset().
|
inlineexplicit |
Copy construct from a list of sub-string references.
Copies the input characters.
Definition at line 75 of file CStringListI.H.
References Foam::input(), and CStringList::reset().
|
inline |
Destructor. Invokes clear() to free memory.
Definition at line 85 of file CStringListI.H.
References clear().
|
inlinestatic |
Count the number of parameters until the first nullptr.
Return 0 if argv is nullptr.
Definition at line 40 of file CStringListI.H.
References n.
|
inlinenoexcept |
True if the size (ie, argc) is zero.
Definition at line 111 of file CStringListI.H.
Referenced by Foam::system().
|
inlinenoexcept |
Return the number of C-strings (ie, argc)
Definition at line 117 of file CStringListI.H.
Referenced by Foam::operator<<().
|
inlinenoexcept |
The flattened character content, with interspersed nul-chars.
Definition at line 178 of file CStringList.H.
|
inlinenoexcept |
Overall length of the flattened character (data) content including interspersed nul-chars but not the trailing nul-char.
Definition at line 184 of file CStringList.H.
|
inlinenoexcept |
Same as cdata_bytes()
Definition at line 189 of file CStringList.H.
|
inlinenoexcept |
Same as size_bytes()
Definition at line 194 of file CStringList.H.
|
inline |
Return string element at the given index. No bounds checking.
Definition at line 151 of file CStringListI.H.
Referenced by Foam::operator<<().
|
inlinenoexcept |
Return the list of C-strings (ie, argv)
The position at argc is a nullptr
Definition at line 123 of file CStringListI.H.
Referenced by Foam::system().
|
inline |
Return the sublist of C-strings (ie, argv) starting at the specified offset.
start | the offset, must be less than argc |
Definition at line 129 of file CStringListI.H.
|
inline |
Clear contents and free memory.
Definition at line 93 of file CStringListI.H.
|
inline |
Copy the input list of strings.
Definition at line 136 of file CStringListI.H.
References Foam::input().
Referenced by CStringList::CStringList().
|
inline |
Copy the input list of strings.
Definition at line 143 of file CStringListI.H.
References Foam::input().
|
static |
Create a list from argc/argv parameters.
A null pointer for argv is permissible when argc is zero.
|
inlinestatic |
Create a list from a nullptr-terminated list of argv parameters.
Using a nullptr for argv is permissible.
|
inline |
Return element at the given index. No bounds checking.
Definition at line 157 of file CStringListI.H.
Foam::List<StringType> asList | ( | int | argc, |
const char *const | argv[] | ||
) |
Definition at line 66 of file CStringListTemplates.C.
Foam::List<StringType> asList | ( | const char *const | argv[] | ) |
Definition at line 81 of file CStringListTemplates.C.
References Foam::BitOps::count().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.