mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
/*
|
|
******************************************************************************
|
|
*
|
|
* Copyright (C) 2015, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*
|
|
******************************************************************************
|
|
*
|
|
* File: cstr.h
|
|
*/
|
|
|
|
#ifndef CSTR_H
|
|
#define CSTR_H
|
|
|
|
#include "unicode/unistr.h"
|
|
#include "unicode/uobject.h"
|
|
#include "unicode/utypes.h"
|
|
|
|
#include "charstr.h"
|
|
|
|
/**
|
|
* ICU-internal class CStr, a small helper class to facilitate passing UnicodStrings
|
|
* to functions needing (const char *) strings, such as printf().
|
|
*
|
|
* It is intended primarily for use in debugging or in tests. Uses platform
|
|
* default code page conversion, which will do the best job possible,
|
|
* but may be lossy, depending on the platform.
|
|
*
|
|
* Example Usage:
|
|
* UnicodeString s = whatever;
|
|
* printf("%s", CStr(s)());
|
|
*
|
|
* The explicit call to the CStr() constructor creates a temporary object.
|
|
* Operator () on the temporary object returns a (const char *) pointer.
|
|
* The lifetime of the (const char *) data is that of the temporary object,
|
|
* which works well when passing it as a parameter to another function, such as printf.
|
|
*/
|
|
|
|
U_NAMESPACE_BEGIN
|
|
|
|
class U_COMMON_API CStr : public UMemory {
|
|
public:
|
|
CStr(const UnicodeString &in);
|
|
~CStr();
|
|
const char * operator ()() const;
|
|
|
|
private:
|
|
CharString s;
|
|
CStr(const CStr &other); // Forbid copying of this class.
|
|
CStr &operator =(const CStr &other); // Forbid assignment.
|
|
};
|
|
|
|
U_NAMESPACE_END
|
|
|
|
#endif
|
|
|