constexpr Initializer list of string views
I'm trying to make a constexpr initializer list of some string constants. I think this should be possible in C++17, but I can't get it to compile in MSVC.
#include <string_view>
using namespace std::literals::string_view_literals;
const constexpr std::initializer_list<std::string_view> some_strings{
"asdf"sv
};
This gives the following error message:
error C2131: expression did not evaluate to a constant
note: failure was caused by non-constant arguments or reference to a non-constant symbol
note: see usage of '$S1'
I can't figure out which part would be non-constexpr:
- std::string_view's operator"" is constexpr
- std::initializer_list's constructor is constexpr as well
Any ideas? Is this possibly just a bug in visual studio? What is '$S1' referenced in the error message?
EDIT: Visual Studio 15.8.9
visual-c++ c++17 constexpr initializer-list
add a comment |
I'm trying to make a constexpr initializer list of some string constants. I think this should be possible in C++17, but I can't get it to compile in MSVC.
#include <string_view>
using namespace std::literals::string_view_literals;
const constexpr std::initializer_list<std::string_view> some_strings{
"asdf"sv
};
This gives the following error message:
error C2131: expression did not evaluate to a constant
note: failure was caused by non-constant arguments or reference to a non-constant symbol
note: see usage of '$S1'
I can't figure out which part would be non-constexpr:
- std::string_view's operator"" is constexpr
- std::initializer_list's constructor is constexpr as well
Any ideas? Is this possibly just a bug in visual studio? What is '$S1' referenced in the error message?
EDIT: Visual Studio 15.8.9
visual-c++ c++17 constexpr initializer-list
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43
add a comment |
I'm trying to make a constexpr initializer list of some string constants. I think this should be possible in C++17, but I can't get it to compile in MSVC.
#include <string_view>
using namespace std::literals::string_view_literals;
const constexpr std::initializer_list<std::string_view> some_strings{
"asdf"sv
};
This gives the following error message:
error C2131: expression did not evaluate to a constant
note: failure was caused by non-constant arguments or reference to a non-constant symbol
note: see usage of '$S1'
I can't figure out which part would be non-constexpr:
- std::string_view's operator"" is constexpr
- std::initializer_list's constructor is constexpr as well
Any ideas? Is this possibly just a bug in visual studio? What is '$S1' referenced in the error message?
EDIT: Visual Studio 15.8.9
visual-c++ c++17 constexpr initializer-list
I'm trying to make a constexpr initializer list of some string constants. I think this should be possible in C++17, but I can't get it to compile in MSVC.
#include <string_view>
using namespace std::literals::string_view_literals;
const constexpr std::initializer_list<std::string_view> some_strings{
"asdf"sv
};
This gives the following error message:
error C2131: expression did not evaluate to a constant
note: failure was caused by non-constant arguments or reference to a non-constant symbol
note: see usage of '$S1'
I can't figure out which part would be non-constexpr:
- std::string_view's operator"" is constexpr
- std::initializer_list's constructor is constexpr as well
Any ideas? Is this possibly just a bug in visual studio? What is '$S1' referenced in the error message?
EDIT: Visual Studio 15.8.9
visual-c++ c++17 constexpr initializer-list
visual-c++ c++17 constexpr initializer-list
edited Nov 12 '18 at 8:42
leecbaker
asked Nov 12 '18 at 8:34
leecbakerleecbaker
1,75422639
1,75422639
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43
add a comment |
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43
add a comment |
1 Answer
1
active
oldest
votes
It seems like a bug on older versions: https://godbolt.org/z/YICeqi
I just tried your code on v15.9.2 and it works fine.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258372%2fconstexpr-initializer-list-of-string-views%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It seems like a bug on older versions: https://godbolt.org/z/YICeqi
I just tried your code on v15.9.2 and it works fine.
add a comment |
It seems like a bug on older versions: https://godbolt.org/z/YICeqi
I just tried your code on v15.9.2 and it works fine.
add a comment |
It seems like a bug on older versions: https://godbolt.org/z/YICeqi
I just tried your code on v15.9.2 and it works fine.
It seems like a bug on older versions: https://godbolt.org/z/YICeqi
I just tried your code on v15.9.2 and it works fine.
answered Nov 23 '18 at 5:54
MacMac
1,20511540
1,20511540
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258372%2fconstexpr-initializer-list-of-string-views%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Latest MSVC. They announced 100% conformance with the standard in 15.7, and I'm using 15.8.9.
– leecbaker
Nov 12 '18 at 8:43