[Bug libstdc++/57513] New: std::regex_token_iterator fails to link

2013-06-03 Thread andy at aligature dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57513

Bug ID: 57513
   Summary: std::regex_token_iterator fails to link
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: andy at aligature dot com

Created attachment 30251
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30251&action=edit
test code file

Any code using std::regex_token_iterator fails to link with gcc-4.8.1.  See the
attached code sample.

 ./gcc-4.8.1/bin/g++ -std=c++11 -Wl,-rpath ./gcc-4.8.1/lib64 regex.cpp -o regex
/tmp/ccmknhZw.o: In function `main':
regex.cpp:(.text+0x10): undefined reference to
`std::regex_token_iterator<__gnu_cxx::__normal_iterator, char, std::regex_traits >::regex_token_iterator()'
collect2: error: ld returned 1 exit status


[Bug c++/52521] [C++11] user defined literals and order of declaration

2012-03-16 Thread andy at aligature dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52521

Andy Webber  changed:

   What|Removed |Added

 CC||andy at aligature dot com

--- Comment #6 from Andy Webber  2012-03-16 19:23:18 
UTC ---
I've been playing around with a gcc 4.7.0 RC2 build and it seems like the user
defined literals might not be working at all now.

Building:
#include 
#include 

constexpr long double operator"" _degrees(long double d)
{
   return d * 0.0175;
}

int main()
{
   long double pi = 180_degrees;
   std::cout << pi << std::endl;
}

Result:
literal.cpp: In function ‘int main()’:
literal.cpp:11:21: error: unable to find numeric literal operator ‘operator""
_degrees’


[Bug c++/52521] [C++11] user defined literals and order of declaration

2012-03-16 Thread andy at aligature dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52521

--- Comment #8 from Andy Webber  2012-03-16 20:06:52 
UTC ---
Ah, that fixes it.  It could be good to update the release notes to match.

Thanks to Ed Smith-Rowland, G++ now implements C++11 user-defined literals.
// Not actually a good approximation.  :)
constexpr long double operator"" _degrees (long double d) { return d * 0.0175;
}
long double pi = 180_degrees;

long double pi = 180.0_degrees;