Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
L
libzmq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
libzmq
Commits
b5dbff8e
Commit
b5dbff8e
authored
Jan 27, 2012
by
m
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix basic_string<unsigned char> not implemented in stdc++ 3
parent
99df984b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
94 additions
and
0 deletions
+94
-0
blob.hpp
src/blob.hpp
+94
-0
No files found.
src/blob.hpp
View file @
b5dbff8e
...
@@ -23,6 +23,100 @@
...
@@ -23,6 +23,100 @@
#include <string>
#include <string>
// Borrowed from id3lib_strings.h:
// They seem to be doing something for MSC, but since I only have gcc, I'll just do that
// Assuming this is uneccessary on GCC 4
// #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
#if (defined(__GNUC__) && (__GNUC__ >= 3) && (__GNUC__ <= 4))
namespace
std
{
template
<>
struct
char_traits
<
unsigned
char
>
{
typedef
unsigned
char
char_type
;
// Unsigned as wint_t in unsigned.
typedef
unsigned
long
int_type
;
typedef
streampos
pos_type
;
typedef
streamoff
off_type
;
typedef
mbstate_t
state_type
;
static
void
assign
(
char_type
&
__c1
,
const
char_type
&
__c2
)
{
__c1
=
__c2
;
}
static
bool
eq
(
const
char_type
&
__c1
,
const
char_type
&
__c2
)
{
return
__c1
==
__c2
;
}
static
bool
lt
(
const
char_type
&
__c1
,
const
char_type
&
__c2
)
{
return
__c1
<
__c2
;
}
static
int
compare
(
const
char_type
*
__s1
,
const
char_type
*
__s2
,
size_t
__n
)
{
for
(
size_t
__i
=
0
;
__i
<
__n
;
++
__i
)
if
(
!
eq
(
__s1
[
__i
],
__s2
[
__i
]))
return
lt
(
__s1
[
__i
],
__s2
[
__i
])
?
-
1
:
1
;
return
0
;
}
static
size_t
length
(
const
char_type
*
__s
)
{
const
char_type
*
__p
=
__s
;
while
(
__p
)
++
__p
;
return
(
__p
-
__s
);
}
static
const
char_type
*
find
(
const
char_type
*
__s
,
size_t
__n
,
const
char_type
&
__a
)
{
for
(
const
char_type
*
__p
=
__s
;
size_t
(
__p
-
__s
)
<
__n
;
++
__p
)
if
(
*
__p
==
__a
)
return
__p
;
return
0
;
}
static
char_type
*
move
(
char_type
*
__s1
,
const
char_type
*
__s2
,
size_t
__n
)
{
return
(
char_type
*
)
memmove
(
__s1
,
__s2
,
__n
*
sizeof
(
char_type
));
}
static
char_type
*
copy
(
char_type
*
__s1
,
const
char_type
*
__s2
,
size_t
__n
)
{
return
(
char_type
*
)
memcpy
(
__s1
,
__s2
,
__n
*
sizeof
(
char_type
));
}
static
char_type
*
assign
(
char_type
*
__s
,
size_t
__n
,
char_type
__a
)
{
for
(
char_type
*
__p
=
__s
;
__p
<
__s
+
__n
;
++
__p
)
assign
(
*
__p
,
__a
);
return
__s
;
}
static
char_type
to_char_type
(
const
int_type
&
__c
)
{
return
char_type
();
}
static
int_type
to_int_type
(
const
char_type
&
__c
)
{
return
int_type
();
}
static
bool
eq_int_type
(
const
int_type
&
__c1
,
const
int_type
&
__c2
)
{
return
__c1
==
__c2
;
}
static
int_type
eof
()
{
return
static_cast
<
int_type
>
(
-
1
);
}
static
int_type
not_eof
(
const
int_type
&
__c
)
{
return
eq_int_type
(
__c
,
eof
())
?
int_type
(
0
)
:
__c
;
}
};
}
// namespace std
#endif // GCC version 3
namespace
zmq
namespace
zmq
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment