Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
const_char_ptr.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
5/*
6 * Authors:
7 * Sergei Izmailov <sergei.a.izmailov@gmail.com>
8 *
9 * Copyright (C) 2020 Sergei Izmailov
10 *
11 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
12 */
13#ifndef SEEN_INKSCAPE_UTIL_CONST_CHAR_PTR_H
14#define SEEN_INKSCAPE_UTIL_CONST_CHAR_PTR_H
15#include <glibmm/ustring.h>
16#include <string>
17#include "share.h"
18
19namespace Inkscape {
20namespace Util {
21
27public:
28 const_char_ptr() noexcept: m_data(nullptr){};
29 const_char_ptr(std::nullptr_t): const_char_ptr() {};
30 const_char_ptr(const char* const data) noexcept: m_data(data) {};
31 const_char_ptr(const Glib::ustring& str) noexcept: const_char_ptr(str.c_str()) {};
32 const_char_ptr(const std::string& str) noexcept: const_char_ptr(str.c_str()) {};
33 const_char_ptr(const ptr_shared& shared) : const_char_ptr(static_cast<const char*>(shared)) {};
34
35 const char * data() const noexcept { return m_data; }
36private:
37 const char * const m_data = nullptr;
38};
39}
40}
41#endif // SEEN_INKSCAPE_UTIL_CONST_CHAR_PTR_H
42/*
43 Local Variables:
44 mode:c++
45 c-file-style:"stroustrup"
46 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
47 indent-tabs-mode:nil
48 fill-column:99
49 End:
50*/
51// vim:filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99:
Non-owning reference to 'const char*' Main-purpose: avoid overloads of type f(char*,...
const_char_ptr(const ptr_shared &shared)
const char * data() const noexcept
const_char_ptr(const char *const data) noexcept
const_char_ptr(const Glib::ustring &str) noexcept
const_char_ptr(const std::string &str) noexcept
Miscellaneous supporting code.
Definition document.h:93
Helper class to stream background task notifications as a series of messages.