Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
capnproto
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
capnproto
Commits
cff54359
Commit
cff54359
authored
7 years ago
by
Kenton Varda
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:sandstorm-io/capnproto
parents
943a8b68
1dcabbf8
master
v0.7.0
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
12 deletions
+20
-12
CMakeLists.txt
CMakeLists.txt
+1
-0
common.h
c++/src/capnp/common.h
+9
-5
capnpc-c++.c++
c++/src/capnp/compiler/capnpc-c++.c++
+7
-7
test.capnp
c++/src/capnp/test.capnp
+3
-0
No files found.
CMakeLists.txt
0 → 100644
View file @
cff54359
add_subdirectory
(
c++
)
This diff is collapsed.
Click to expand it.
c++/src/capnp/common.h
View file @
cff54359
...
...
@@ -161,15 +161,19 @@ inline constexpr Kind kind() {
return
k
;
}
#if
CAPNP_LITE
#if
_MSC_VER
#define CAPNP_KIND(T) ::capnp::_::Kind_<T>::kind
// Avoid constexpr methods in
lite mode (MSVC is bad at constexpr
).
// Avoid constexpr methods in
MSVC (it remains buggy in many situations
).
#else //
CAPNP_LITE
#else //
_MSC_VER
#define CAPNP_KIND(T) ::capnp::kind<T>()
// Use this macro rather than kind<T>() in any code which must work in lite mode.
// Use this macro rather than kind<T>() in any code which must work in MSVC.
#endif // _MSC_VER, else
#if !CAPNP_LITE
template
<
typename
T
,
Kind
k
=
kind
<
T
>
()
>
inline
constexpr
Style
style
()
{
...
...
@@ -178,7 +182,7 @@ inline constexpr Style style() {
:
k
==
Kind
::
INTERFACE
?
Style
::
CAPABILITY
:
Style
::
POINTER
;
}
#endif //
CAPNP_LITE, else
#endif //
!CAPNP_LITE
template
<
typename
T
,
Kind
k
=
CAPNP_KIND
(
T
)
>
struct
List
;
...
...
This diff is collapsed.
Click to expand it.
c++/src/capnp/compiler/capnpc-c++.c++
View file @
cff54359
...
...
@@ -494,7 +494,7 @@ private:
case
schema
:
:
Type
::
AnyPointer
::
Unconstrained
::
LIST
:
return
CppTypeName
::
makePrimitive
(
" ::capnp::AnyList"
);
case
schema
:
:
Type
::
AnyPointer
::
Unconstrained
::
CAPABILITY
:
hasInterfaces
=
true
;
// Probably need to #inc
ul
de <capnp/capability.h>.
hasInterfaces
=
true
;
// Probably need to #inc
lu
de <capnp/capability.h>.
return
CppTypeName
::
makePrimitive
(
" ::capnp::Capability"
);
}
KJ_UNREACHABLE
;
...
...
@@ -682,12 +682,12 @@ private:
kj
::
StringTree
dependencies
;
size_t
dependencyCount
;
// TODO(msvc): `dependencyCount` is the number of individual dependency definitions in
// `dependencies`. It's a hack to allow makeGenericDefinitions to hard-code the size of the
// `_capnpPrivate::brandDependencies` array into the definition of
//
`_capnpPrivate::specificBrand::dependencyCount`. This is necessary because MSVC cannot deduce
//
the size of `brandDependencies` if it is nested under a class template. It's probably thi
s
// demoralizingly deferred bug:
// https://connect.microsoft.com/VisualStudio/feedback/details/759407/can-not-get-size-of-static-array-defined-in-class-template
//
`dependencies`. It's a hack to allow makeGenericDefinitions to hard-code the size of the
//
`_capnpPrivate::brandDependencies` array into the definition of
//
`_capnpPrivate::specificBrand::dependencyCount`. This is necessary because MSVC cannot
//
deduce the size of `brandDependencies` if it is nested under a class template. It'
s
//
probably this
demoralizingly deferred bug:
//
https://connect.microsoft.com/VisualStudio/feedback/details/759407/can-not-get-size-of-static-array-defined-in-class-template
};
BrandInitializerText
makeBrandInitializers
(
...
...
This diff is collapsed.
Click to expand it.
c++/src/capnp/test.capnp
View file @
cff54359
...
...
@@ -537,6 +537,9 @@ struct TestGenerics(Foo, Bar) {
}
}
list @4 :List(Inner);
# At one time this failed to compile with MSVC due to poor expression SFINAE support.
struct Inner {
foo @0 :Foo;
bar @1 :Bar;
...
...
This diff is collapsed.
Click to expand it.
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