Adobe Source Libraries 2.0.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
sheet.hpp
Go to the documentation of this file.
1/*
2 Copyright 2013 Adobe
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5*/
6/**************************************************************************************************/
7
8#ifndef ADOBE_SHEET_HPP
9#define ADOBE_SHEET_HPP
10
11/**************************************************************************************************/
12
13#include <adobe/config.hpp>
14
15/**************************************************************************************************/
16
17namespace adobe {
18
19/**************************************************************************************************/
20
21#ifdef ADOBE_CONCEPTS
22
23/**************************************************************************************************/
24
25auto concept BasicSheetConcept<typename T>{};
26
27/**************************************************************************************************/
28
29auto concept SheetConcept<typename T> : BasicSheetConcept<T> {
30 void touch(T & t, const name_t*, const name_t*);
31};
32
33/**************************************************************************************************/
34
35auto concept SheetMFConcept<typename T> : BasicSheetConcept<T> {
36 void T::touch(const name_t*, const name_t*);
37};
38
39/**************************************************************************************************/
40
41template <SheetMFConcept T>
42concept_map SheetConcept<T>{
43 inline void touch(T & t, const name_t* x, const name_t* y){t.touch(x, y);
44}
45}
46;
47
48/**************************************************************************************************/
49
50template <BasicSheetConcept T>
51concept_map BasicSheetConcept<std::reference_wrapper<T>>{};
52
53/**************************************************************************************************/
54
55template <SheetConcept T>
56concept_map SheetConcept<std::reference_wrapper<T>>{
57 inline void touch(std::reference_wrapper<T> & r, const name_t* x,
58 const name_t* y){SheetConcept<T>::touch(static_cast<T&>(r), x, y);
59}
60}
61;
62
63/**************************************************************************************************/
64
65#endif
66
67/**************************************************************************************************/
68}
69
70/**************************************************************************************************/
71
72#endif
A character string class for immutable strings.
Definition name.hpp:220