
Single line comments starting with `///` are interpreted by Microsoft Visual Studio as documentation containing XML code. Therefore single line comments starting with `///<` unfortunately cause a parsing error, as IntelliSense will assume the `<` is the start of an XML tag. This is not the case, but unfortunately, IntelliSense will still complain about the following space character rather than displaying the raw string. This commit alters all such comments to start with `//!<` instead, which prevents the issue. This fixes issue #1622.
104 lines
3.3 KiB
C++
104 lines
3.3 KiB
C++
////////////////////////////////////////////////////////////
|
|
//
|
|
// SFML - Simple and Fast Multimedia Library
|
|
// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org)
|
|
//
|
|
// This software is provided 'as-is', without any express or implied warranty.
|
|
// In no event will the authors be held liable for any damages arising from the use of this software.
|
|
//
|
|
// Permission is granted to anyone to use this software for any purpose,
|
|
// including commercial applications, and to alter it and redistribute it freely,
|
|
// subject to the following restrictions:
|
|
//
|
|
// 1. The origin of this software must not be misrepresented;
|
|
// you must not claim that you wrote the original software.
|
|
// If you use this software in a product, an acknowledgment
|
|
// in the product documentation would be appreciated but is not required.
|
|
//
|
|
// 2. Altered source versions must be plainly marked as such,
|
|
// and must not be misrepresented as being the original software.
|
|
//
|
|
// 3. This notice may not be removed or altered from any source distribution.
|
|
//
|
|
////////////////////////////////////////////////////////////
|
|
|
|
#ifndef SFML_THREADLOCAL_HPP
|
|
#define SFML_THREADLOCAL_HPP
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// Headers
|
|
////////////////////////////////////////////////////////////
|
|
#include <SFML/System/Export.hpp>
|
|
#include <SFML/System/NonCopyable.hpp>
|
|
#include <cstdlib>
|
|
|
|
|
|
namespace sf
|
|
{
|
|
namespace priv
|
|
{
|
|
class ThreadLocalImpl;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \brief Defines variables with thread-local storage
|
|
///
|
|
////////////////////////////////////////////////////////////
|
|
class SFML_SYSTEM_API ThreadLocal : NonCopyable
|
|
{
|
|
public:
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \brief Default constructor
|
|
///
|
|
/// \param value Optional value to initialize the variable
|
|
///
|
|
////////////////////////////////////////////////////////////
|
|
ThreadLocal(void* value = NULL);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \brief Destructor
|
|
///
|
|
////////////////////////////////////////////////////////////
|
|
~ThreadLocal();
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \brief Set the thread-specific value of the variable
|
|
///
|
|
/// \param value Value of the variable for the current thread
|
|
///
|
|
////////////////////////////////////////////////////////////
|
|
void setValue(void* value);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \brief Retrieve the thread-specific value of the variable
|
|
///
|
|
/// \return Value of the variable for the current thread
|
|
///
|
|
////////////////////////////////////////////////////////////
|
|
void* getValue() const;
|
|
|
|
private:
|
|
|
|
////////////////////////////////////////////////////////////
|
|
// Member data
|
|
////////////////////////////////////////////////////////////
|
|
priv::ThreadLocalImpl* m_impl; //!< Pointer to the OS specific implementation
|
|
};
|
|
|
|
} // namespace sf
|
|
|
|
|
|
#endif // SFML_THREADLOCAL_HPP
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
/// \class sf::ThreadLocal
|
|
/// \ingroup system
|
|
///
|
|
/// This class manipulates void* parameters and thus is not
|
|
/// appropriate for strongly-typed variables. You should rather
|
|
/// use the sf::ThreadLocalPtr template class.
|
|
///
|
|
////////////////////////////////////////////////////////////
|