Skip to content

Commit c1cc359

Browse files
committed
Merge pull request #2 from LB--/tmp-make_signed
Template Metaprogramming: make_signed
2 parents a69b32a + 4fea868 commit c1cc359

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

tmp-make_signed/LICENSE

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
This is free and unencumbered software released into the public domain.
2+
3+
Anyone is free to copy, modify, publish, use, compile, sell, or
4+
distribute this software, either in source code form or as a compiled
5+
binary, for any purpose, commercial or non-commercial, and by any
6+
means.
7+
8+
In jurisdictions that recognize copyright laws, the author or authors
9+
of this software dedicate any and all copyright interest in the
10+
software to the public domain. We make this dedication for the benefit
11+
of the public at large and to the detriment of our heirs and
12+
successors. We intend this dedication to be an overt act of
13+
relinquishment in perpetuity of all present and future rights to this
14+
software under copyright law.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22+
OTHER DEALINGS IN THE SOFTWARE.
23+
24+
For more information, please refer to <http://unlicense.org>

tmp-make_signed/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
This snippet depends on tmp-identity.
2+
3+
Usage examples:
4+
* http://stackoverflow.com/a/16377818/1959975
5+
* http://ideone.com/uNCPt5
6+
7+
See wiki for documentation.

tmp-make_signed/make_signed.hpp

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#ifndef TemplateMetaprogramming_MakeSigned_HeaderPlusPlus
2+
#define TemplateMetaprogramming_MakeSigned_HeaderPlusPlus
3+
4+
#include <type_traits>
5+
#include "identity.hpp" //see ../tmp-identity/
6+
7+
template<typename T>
8+
using make_signed = typename std::conditional
9+
<
10+
std::is_integral<T>::value,
11+
std::make_signed<T>,
12+
identity<T>
13+
>::type;
14+
15+
#endif

0 commit comments

Comments
 (0)