C ++ internal buffer address undefined




The following behavior is undefined in the C ++ 11 standard:


(tries to get the address of the internal buffer of the string)



```
std::string s;
... = &s[0];

        

        
        
        
 (adsbygoogle = window.adsbygoogle || []).push({});
 
        

    
```

like when `s`
  




 (adsbygoogle = window.adsbygoogle || []).push({});
 
  

empty?


I know what we have `c_str(), data()`
  




 (adsbygoogle = window.adsbygoogle || []).push({});
 
  

, but nonetheless.


 Note



This comes from a debate with someone, this is not intended to promote hacky coding
In C ++ 11, the code is well defined, but may not do what you expect. Exact Effects: 21.4.5 / 2:



>  Returns: `*(begin() + pos)`
>   
> 
> 
> 
> 
>  (adsbygoogle = window.adsbygoogle || []).push({});
>  
>   
> 
> if `pos < size()`
>   
> 
> 
> 
> 
>  (adsbygoogle = window.adsbygoogle || []).push({});
>  
>   
> 
> , otherwise a reference to an object of type `T`
>   
> 
> 
> 
> 
>  (adsbygoogle = window.adsbygoogle || []).push({});
>  
>   
> 
> with a value `charT()`
>   
> 
> 
> 
> 
>  (adsbygoogle = window.adsbygoogle || []).push({});
>  
>   
> 
> ; the reference value should not be changed.
> 
> 
> 



  




 (adsbygoogle = window.adsbygoogle || []).push({});
 
  

So, if the string is not empty, it returns a reference to the beginning of the internal buffer. If empty, it returns a reference `char`
  




 (adsbygoogle = window.adsbygoogle || []).push({});
 
  

with a value `0`
  




 (adsbygoogle = window.adsbygoogle || []).push({});
 
  

whose location is implementation information.
How about in c++?



[http://www.1cplusplusstreet.com/vb/scripts/ShowCode.asp?txtCodeId=6877&lngWId=3](/posts/bad_link/258354?url=http%3A%2F%2Fwww.1cplusplusstreet.com%2Fvb%2Fscripts%2FShowCode.asp%3FtxtCodeId%3D6877%26lngWId%3D3) [image] cid\_cat:

error: c++11 is required and is missing or failed to compile.

i can’t help with most of that, but for c++11, see:

<https://gcc.gnu.org/projects/cxx-status.html#cxx11>

you probably must explicitly pass argument “-std=c++11” (or in some cases, perhaps “-std=gnu++11”).

if you l… It' just standard c++ ifstream and ofstream. When the program starts, try to open the file, if it success then read it. more information: [c++ friend functions](http://www.tutorialspoint.com/cplusplus/cpp_friend_functions.htm) JavaScript *itself* has nothing built in for handling query string parameters. 


Code running in a (modern) browser you can use the [`URL` object](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) (which is part of the APIs provided by browsers to JS):





```
var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);
```









For older browsers (including Internet Explorer), you can use [this polyfill](https://github.com/ungap/url-search-params) or the code from the original version of this answer that predates `URL`:


You could access `location.search`, which would give you from the `?` character on to the end of the URL or the start of the fragment identifier (#foo), whichever comes first.


Then you can parse it with this:





```
function parse_query_string(query) {
  var vars = query.split("&");
  var query_string = {};
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    var key = decodeURIComponent(pair[0]);
    var value = decodeURIComponent(pair[1]);
    // If first entry with this name
    if (typeof query_string[key]  "undefined") {
      query_string[key] = decodeURIComponent(value);
      // If second entry with this name
    } else if (typeof query_string[key]  "string") {
      var arr = [query_string[key], decodeURIComponent(value)];
      query_string[key] = arr;
      // If third or later entry with this name
    } else {
      query_string[key].push(decodeURIComponent(value));
    }
  }
  return query_string;
}

var query_string = "a=1&b=3&c=m2-m3-m4-m5";
var parsed_qs = parse_query_string(query_string);
console.log(parsed_qs.c);
```




You can get the query string from the URL of the current page with:



```
var query = window.location.search.substring(1);
var qs = parse_query_string(query);

``` I think String^ is like a C++ reference and thus cannot be stored in a STL container. But don't blame me if this is not right, cause I'm not familiar with mixing native C++ and C++/CLR. you write an int, but try to receive a c-string, that can not work.

the radio will not be available (i.e. have a packet received) 99.9% of the time,

introducing a delay and printing something if that is the case is just crazy.

so your code seems to be copy and pasted crap without any understandin… [@cssc](/u/cssc), another option would be to take the regex way.

first, it finds the index of the 5th pipe.

then, it takes the substring until that index.

give this a try:

inputstr.substring(0, regex.matches(inputstr, "\|")(4).index + 1) [matheus](https://forum.tastyigniter.com/d/1704/1) the extension uses your browser notification which has audio by default, so might be worth looking in your browser setting? hi,

sorry you are having issues with this. this is a known bug that was fixed in 2.24. the index of the loop is of an unsigned type in the generated c++ in 2.23. and since there are no negative numbers in unsigned types -1 becomes max integer.

issue where we found this: [https://github.com/stan-dev…](https://github.com/stan-dev/stanc3/issues/536)