blob: 7276b8361529fd627d765e8b459cbe60cd4d5d7a [file] [log] [blame]
/*
*******************************************************************************
*
* Copyright (C) 2009-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
* file name: std_string.h
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
*
* created on: 2009feb19
* created by: Markus W. Scherer
*/
#ifndef __STD_STRING_H__
#define __STD_STRING_H__
/**
* \file
* \brief C++ API: Central ICU header for including the C++ standard <string>
* header and for related definitions.
*/
#include "unicode/utypes.h"
/**
* \def U_HAVE_STD_STRING
* Define whether the standard C++ (STL) <string> header is available.
* @draft ICU 4.2
*/
#ifndef U_HAVE_STD_STRING
#define U_HAVE_STD_STRING 1
#endif
#if U_HAVE_STD_STRING
#include <string>
/**
* \def U_STD_NS
* Define the namespace to use for standard C++ (STL) classes.
* Either std or empty.
* @draft ICU 4.2
*/
/**
* \def U_STD_NSQ
* Define the namespace qualifier to use for standard C++ (STL) classes.
* Either std:: or empty.
* For example,
* U_STD_NSQ string StringFromUnicodeString(const UnicodeString &unistr);
* @draft ICU 4.2
*/
/**
* \def U_STD_NS_USE
* This is used to specify that the rest of the code uses the
* standard (STL) namespace.
* Either "using namespace std;" or empty.
* @draft ICU 4.2
*/
#ifndef U_STD_NSQ
# if U_HAVE_NAMESPACE
# define U_STD_NS std
# define U_STD_NSQ U_STD_NS::
# define U_STD_NS_USE using namespace U_STD_NS;
# else
# define U_STD_NS
# define U_STD_NSQ
# define U_STD_NS_USE
# endif
#endif
#endif // U_HAVE_STD_STRING
#endif // __STD_STRING_H__