word Class Reference

A class for handling words, derived from Foam::string. More...

Inheritance diagram for word:
Collaboration diagram for word:

Public Member Functions

 word ()=default
 Default construct. More...
 
 word (const word &)=default
 Copy construct. More...
 
 word (word &&w)=default
 Move construct. More...
 
 word (const string &s, bool doStrip=true)
 Copy construct from Foam::string. More...
 
 word (string &&s, bool doStrip=true)
 Move construct from Foam::string. More...
 
 word (const std::string &s, bool doStrip=true)
 Copy construct from std::string. More...
 
 word (std::string &&s, bool doStrip=true)
 Move construct from std::string. More...
 
 word (const char *s, bool doStrip=true)
 Copy from character array. More...
 
 word (const char *s, size_type len, bool doStrip)
 Copy from buffer for a maximum number of characters. More...
 
 word (Istream &is)
 Construct from Istream. More...
 
void stripInvalid ()
 Strip invalid characters from this word. More...
 
word ext () const
 Return file name extension (part after last .) More...
 
wordext (const word &ending)
 Append a '.' and the ending, and return the object. More...
 
wordreplace_ext (const word &ending)
 Remove extension (if any) and append a new one. More...
 
word lessExt () const
 Return word without extension (part before last .) More...
 
wordoperator= (const word &s)
 Copy assignment, no character validation required. More...
 
wordoperator= (word &&s)
 Move assignment, no character validation required. More...
 
wordoperator= (const string &s)
 Copy assignment from Foam::string, stripping invalid characters. More...
 
wordoperator= (string &&s)
 Move assignment from Foam::string, stripping invalid characters. More...
 
wordoperator= (const std::string &s)
 Copy assignment from std::string, stripping invalid characters. More...
 
wordoperator= (std::string &&s)
 Move assignment from std::string, stripping invalid characters. More...
 
wordoperator= (const char *s)
 Copy, stripping invalid characters. More...
 
bool hasExt () const
 Same as has_ext() More...
 
bool hasExt (const std::string &s) const
 Same as has_ext() More...
 
bool removeExt ()
 Same as remove_ext() More...
 
template<class PrimitiveType >
Foam::word printf (const char *fmt, const PrimitiveType &val)
 
template<class PrimitiveType >
Foam::word printf (const std::string &fmt, const PrimitiveType &val)
 
bool remove_ext ()
 Remove extension, return true if string changed. More...
 
bool has_ext () const
 Various checks for extensions. More...
 
bool has_ext (const char *ending) const
 Various checks for extensions. More...
 
bool has_ext (const std::string &ending) const
 Various checks for extensions. More...
 
bool has_ext (const wordRe &ending) const
 Various checks for extensions. More...
 
- Public Member Functions inherited from string
 string ()=default
 Default construct. More...
 
 string (const std::string &str)
 Copy construct from std::string. More...
 
 string (std::string &&str)
 Move construct from std::string. More...
 
 string (const char *str)
 Construct as copy of character array. More...
 
 string (const char *str, const size_type len)
 Construct as copy with a maximum number of characters. More...
 
 string (const char c)
 Construct from a single character. More...
 
 string (const size_type len, const char c)
 Construct fill copies of a single character. More...
 
 string (Istream &is)
 Construct from Istream. More...
 
bool match (const std::string &text) const
 Test for equality. More...
 
stringreplace (const std::string &s1, const std::string &s2, size_type pos=0)
 Replace first occurrence of sub-string s1 with s2, beginning at pos. More...
 
stringreplaceAll (const std::string &s1, const std::string &s2, size_type pos=0)
 Replace all occurrences of sub-string s1 with s2, beginning at pos in the string. More...
 
stringreplaceAny (const std::string &s1, const char c2, size_type pos=0)
 Replace any occurrence of s1 characters with c2, beginning at pos in the string. More...
 
stringexpand (const bool allowEmpty=false)
 Inplace expand initial tags, tildes, and all occurrences of environment variables as per stringOps::expand. More...
 
bool removeRepeated (const char character)
 Remove repeated characters. More...
 
bool removeStart (const std::string &text)
 Remove the given text from the start of the string. More...
 
bool removeStart (const char c)
 Remove leading character, unless string is a single character. More...
 
bool removeEnd (const std::string &text)
 Remove the given text from the end of the string. More...
 
bool removeEnd (const char c)
 Remove trailing character, unless string is a single character. More...
 
void swap (std::string &str)
 Swap contents. Self-swapping is a no-op. More...
 
bool operator() (const std::string &text) const
 Test for equality. Allows use as a predicate. More...
 
bool contains (char c) const noexcept
 True if string contains given character (cf. C++23) More...
 
bool contains (const std::string &s) const noexcept
 True if string contains given [string view] substring (cf. C++23) More...
 
bool contains (const char *s) const
 True if string contains given substring (cf. C++23) More...
 
bool starts_with (char c) const
 True if string starts with given character (cf. C++20) More...
 
bool starts_with (const std::string &s) const
 True if string starts with given [string view] prefix (C++20) More...
 
bool starts_with (const char *s) const
 True if string starts with given prefix (C++20) More...
 
bool ends_with (char c) const
 True if string ends with given character (cf. C++20) More...
 
bool ends_with (const std::string &s) const
 True if string ends with given [string view] suffix (cf. C++20) More...
 
bool ends_with (const char *s) const
 True if string ends with given suffix (cf. C++20) More...
 
size_type count (const char c) const
 Count the number of occurrences of the specified character in the string. More...
 
bool startsWith (const std::string &s) const
 Deprecated(2019-11) More...
 
bool endsWith (const std::string &s) const
 Deprecated(2019-11) More...
 
bool removeTrailing (const char c)
 Deprecated(2019-11) More...
 

Static Public Member Functions

template<class PrimitiveType >
static word printf (const char *fmt, const PrimitiveType &val)
 Use a printf-style formatter for a primitive. More...
 
template<class PrimitiveType >
static word printf (const std::string &fmt, const PrimitiveType &val)
 Use a printf-style formatter for a primitive. More...
 
static bool valid (char c)
 Is this character valid for a word? More...
 
static word validate (const std::string &s, const bool prefix=false)
 Construct validated word (no invalid characters). More...
 
static word validate (const char *first, const char *last, const bool prefix=false)
 Construct validated word (no invalid characters) from a sequence of characters in the range [first,last),. More...
 
- Static Public Member Functions inherited from string
static std::string::size_type length (const char *s)
 Length of the character sequence (with nullptr protection) More...
 
static std::string::size_type length (const std::string &s)
 The length of the string. More...
 
template<class StringType >
static bool valid (const std::string &str)
 Does the string contain valid characters only? More...
 
template<class StringType >
static bool stripInvalid (std::string &str)
 Strip invalid characters from the given string. More...
 
template<class StringType >
static StringType validate (const std::string &str)
 Return a valid String from the given string. More...
 

Static Public Attributes

static const char *const typeName = "word"
 The typeName. More...
 
static int debug
 Debugging. More...
 
static const word null
 An empty word. More...
 
- Static Public Attributes inherited from string
static const char *const typeName = "string"
 The type name "string". More...
 
static int debug
 The debug flag. More...
 
static const string null
 An empty string. More...
 

Additional Inherited Members

- Protected Member Functions inherited from string
std::string::size_type find_ext () const
 Find position of a file extension dot, return npos on failure. More...
 
word ext () const
 Return file name extension (part after last .) More...
 
bool ext (const word &ending)
 Append a '.' and the ending. More...
 
bool has_ext () const
 Return true if it has an extension or simply ends with a '.'. More...
 
bool has_ext (const char *ending) const
 Return true if the extension is the same as the given ending. More...
 
bool has_ext (const std::string &ending) const
 Return true if the extension is the same as the given ending. More...
 
bool has_ext (const wordRe &ending) const
 Return true if the extension matches the given ending. More...
 
bool remove_path ()
 Remove leading path, return true if string changed. More...
 
bool remove_ext ()
 Remove extension, return true if string changed. More...
 
- Static Protected Member Functions inherited from string
static std::string::size_type find_ext (const std::string &str)
 Find position of a file extension dot, return npos on failure. More...
 
template<class PrimitiveType >
static std::string::size_type string_printf (std::string &output, const char *fmt, const PrimitiveType &val)
 A printf-style formatter for a primitive. More...
 
template<class PrimitiveType >
static std::string::size_type string_printf (std::string &output, const std::string &fmt, const PrimitiveType &val)
 A printf-style formatter for a primitive. More...
 

Detailed Description

A class for handling words, derived from Foam::string.

A word is a string of characters without whitespace, quotes, slashes, semicolons or brace brackets. Words are delimited by whitespace.

Source files

Definition at line 63 of file word.H.

Constructor & Destructor Documentation

◆ word() [1/10]

word ( )
default

Default construct.

◆ word() [2/10]

word ( const word )
default

Copy construct.

◆ word() [3/10]

word ( word &&  w)
default

Move construct.

◆ word() [4/10]

word ( const string s,
bool  doStrip = true 
)
inline

Copy construct from Foam::string.

Definition at line 69 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [5/10]

word ( string &&  s,
bool  doStrip = true 
)
inline

Move construct from Foam::string.

Definition at line 80 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [6/10]

word ( const std::string &  s,
bool  doStrip = true 
)
inline

Copy construct from std::string.

Definition at line 102 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [7/10]

word ( std::string &&  s,
bool  doStrip = true 
)
inline

Move construct from std::string.

Definition at line 91 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [8/10]

word ( const char *  s,
bool  doStrip = true 
)
inline

Copy from character array.

Definition at line 113 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [9/10]

word ( const char *  s,
size_type  len,
bool  doStrip 
)
inline

Copy from buffer for a maximum number of characters.

Definition at line 124 of file wordI.H.

References word::stripInvalid().

Here is the call graph for this function:

◆ word() [10/10]

word ( Istream is)
explicit

Construct from Istream.

Definition at line 28 of file wordIO.C.

Member Function Documentation

◆ printf() [1/4]

static word printf ( const char *  fmt,
const PrimitiveType &  val 
)
inlinestatic

Use a printf-style formatter for a primitive.

The representation is not checked for valid characters - it is assumed that the caller knows what they are doing

Referenced by isoSurfaceTopo::isoSurfaceTopo(), dataCloud::write(), vtkCloud::write(), ensightCase::write(), vtkWrite::write(), and isoAdvection::writeIsoFaces().

Here is the caller graph for this function:

◆ printf() [2/4]

static word printf ( const std::string &  fmt,
const PrimitiveType &  val 
)
inlinestatic

Use a printf-style formatter for a primitive.

The representation is not checked for valid characters - it is assumed that the caller knows what they are doing

◆ valid()

bool valid ( char  c)
inlinestatic

Is this character valid for a word?

Definition at line 52 of file wordI.H.

References Foam::constant::universal::c, and Foam::isspace().

Referenced by ISstream::read(), VarName::valid(), keyType::valid(), wordRe::valid(), and word::validate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ validate() [1/2]

Foam::word validate ( const std::string &  s,
const bool  prefix = false 
)
static

Construct validated word (no invalid characters).

Optionally prefix any leading digit with '_' to have words that work nicely as dictionary keywords.

Definition at line 39 of file word.C.

References Foam::constant::universal::c, s, and word::valid().

Referenced by exprDriver::addVariables(), fvExprDriver::evaluateVariableRemote(), STLAsciiParseManual::execute(), Foam::getStopAction(), entry::New(), Foam::operator>>(), NASedgeFormat::read(), OBJedgeFormat::read(), functionObjectList::readFunctionObject(), STARCDsurfaceFormatCore::readInpCellTable(), FIREMeshReader::readSelections(), and ABAQUSCore::readHelper::readSurfaceElements().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ validate() [2/2]

Foam::word validate ( const char *  first,
const char *  last,
const bool  prefix = false 
)
static

Construct validated word (no invalid characters) from a sequence of characters in the range [first,last),.

Optionally prefix any leading digit with '_'.

Definition at line 72 of file word.C.

References Foam::constant::universal::c, and word::valid().

Here is the call graph for this function:

◆ stripInvalid()

void stripInvalid ( )
inline

Strip invalid characters from this word.

Trips an abort on invalid characters for debug 2 or greater

Definition at line 137 of file wordI.H.

References Foam::ensightOutput::debug, Foam::endl(), and Foam::exit().

Referenced by word::word().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ext() [1/2]

◆ ext() [2/2]

Foam::word & ext ( const word ending)
inline

Append a '.' and the ending, and return the object.

The '.' and ending will not be added when the ending is empty, or when the file name is empty or ended with a '/'.

Definition at line 177 of file wordI.H.

References string::ext().

Here is the call graph for this function:

◆ replace_ext()

Foam::word & replace_ext ( const word ending)
inline

Remove extension (if any) and append a new one.

Definition at line 184 of file wordI.H.

References string::ext(), and string::remove_ext().

Here is the call graph for this function:

◆ lessExt()

Foam::word lessExt ( ) const
inline

Return word without extension (part before last .)

Definition at line 192 of file wordI.H.

Referenced by IOobject::member(), UnsortedMeshedSurface< Face >::New(), MeshedSurface< Foam::face >::New(), triSurface::New(), edgeMesh::read(), and extendedEdgeMesh::read().

Here is the caller graph for this function:

◆ operator=() [1/7]

Foam::word & operator= ( const word s)
inline

Copy assignment, no character validation required.

Self-assignment is a no-op

Definition at line 207 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [2/7]

Foam::word & operator= ( word &&  s)
inline

Move assignment, no character validation required.

Self-assignment is a no-op

Definition at line 218 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [3/7]

Foam::word & operator= ( const string s)
inline

Copy assignment from Foam::string, stripping invalid characters.

Definition at line 229 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [4/7]

Foam::word & operator= ( string &&  s)
inline

Move assignment from Foam::string, stripping invalid characters.

Definition at line 237 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [5/7]

Foam::word & operator= ( const std::string &  s)
inline

Copy assignment from std::string, stripping invalid characters.

Definition at line 245 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [6/7]

Foam::word & operator= ( std::string &&  s)
inline

Move assignment from std::string, stripping invalid characters.

Definition at line 253 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ operator=() [7/7]

Foam::word & operator= ( const char *  s)
inline

Copy, stripping invalid characters.

Definition at line 261 of file wordI.H.

References Foam::FieldOps::assign(), and s.

Here is the call graph for this function:

◆ hasExt() [1/2]

bool hasExt ( ) const
inline

Same as has_ext()

Definition at line 287 of file word.H.

References string::has_ext().

Here is the call graph for this function:

◆ hasExt() [2/2]

bool hasExt ( const std::string &  s) const
inline

Same as has_ext()

Definition at line 292 of file word.H.

References string::has_ext(), and s.

Here is the call graph for this function:

◆ removeExt()

bool removeExt ( )
inline

Same as remove_ext()

Definition at line 297 of file word.H.

References string::remove_ext().

Here is the call graph for this function:

◆ printf() [3/4]

Foam::word printf ( const char *  fmt,
const PrimitiveType &  val 
)
inline

Definition at line 28 of file wordI.H.

References Foam::output().

Here is the call graph for this function:

◆ printf() [4/4]

Foam::word printf ( const std::string &  fmt,
const PrimitiveType &  val 
)
inline

Definition at line 41 of file wordI.H.

References Foam::output().

Here is the call graph for this function:

◆ remove_ext()

bool remove_ext
inline

Remove extension, return true if string changed.

Definition at line 93 of file stringI.H.

Referenced by Foam::readDir().

Here is the caller graph for this function:

◆ has_ext() [1/4]

◆ has_ext() [2/4]

bool has_ext
inline

Various checks for extensions.

Definition at line 49 of file stringI.H.

◆ has_ext() [3/4]

bool has_ext
inline

Various checks for extensions.

Definition at line 64 of file stringI.H.

◆ has_ext() [4/4]

bool has_ext

Various checks for extensions.

Definition at line 74 of file string.C.

Member Data Documentation

◆ typeName

const char *const typeName = "word"
static

The typeName.

Definition at line 74 of file word.H.

◆ debug

int debug
static

Debugging.

Definition at line 79 of file word.H.

Referenced by keyType::setType(), keyType::uncompile(), and wordRe::uncompile().

◆ null

const Foam::word null
static

An empty word.

Definition at line 84 of file word.H.

Referenced by FIREMeshReader::addPatches(), vtmWriter::append(), interfaceEntry::canonicalName(), surfaceFormatsCore::checkFile(), fluxSummary::checkFlowType(), externalCoupled::compositeName(), pointPatch::constraintType(), pointPatchFieldBase::constraintType(), Foam::createZeroBoundaryPtr(), STLAsciiParseManual::execute(), fileOperation::exists(), masterUncollatedFileOperation::exists(), faMesh::faMesh(), fvExpressionField::fieldName(), Foam::filteredName(), surfaceFormatsCore::findFile(), boundaryRegion::findIndex(), cellTable::findIndex(), Time::findInstancePath(), topoSet::findIOobject(), fvExprDriver::getFieldClassName(), polyTopoChange::makeMesh(), dynamicRefineFvMesh::mapFields(), displacementMotionSolverMeshMover::move(), basicSolidChemistryModel::New(), collatedFileOperation::objectPath(), properties::objectResultType(), orderedPhasePair::otherName(), decomposedBlockData::read(), regionFunctionObject::read(), rigidBodyMotion::read(), BilgerMixtureFraction::read(), sampledSurfaces::read(), reference::reference(), polyMesh::regionName(), surfaceFormatsCore::relativeFilePath(), sizeDistribution::setCellZoneCells(), sensitivitySurfacePoints::setSuffixName(), triSurface::triSurface(), triSurfaceMesh::triSurfaceMesh(), dynamicRefineFvMesh::unrefine(), UnsortedMeshedSurface< Face >::UnsortedMeshedSurface(), token::wordToken(), surfaceSlipDisplacementPointPatchVectorField::write(), surfaceDisplacementPointPatchVectorField::write(), multiFieldValue::write(), mappedPatchBase::write(), caseInfo::writeFileDicts(), nutWallFunctionFvPatchScalarField::writeLocalEntries(), and Foam::writeMeshObject().


The documentation for this class was generated from the following files: