- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using icpc with -std=c++0x, in which "std::uniform_real_distribution<double> rnd" throws a couple of errors during compile time, like
WangLandau.h(103): error: qualified name is not allowed
std::uniform_real_distribution<double> rnd;
^
WangLandau.h(103): error #77: this declaration has no storage class or type specifier
std::uniform_real_distribution<double> rnd;
^
WangLandau.h(103): error: expected a ";"
std::uniform_real_distribution<double> rnd;
^
WangLandau2d.h(92): error: qualified name is not allowed
std::uniform_real_distribution<double> rnd; //, rnd11(-1.0,1.0),rnd0pi(0.0,2.0*M_PI);
^
WangLandau2d.h(92): error #77: this declaration has no storage class or type specifier
std::uniform_real_distribution<double> rnd; //, rnd11(-1.0,1.0),rnd0pi(0.0,2.0*M_PI);
^
WangLandau2d.h(92): error: expected a ";"
std::uniform_real_distribution<double> rnd; //, rnd11(-1.0,1.0),rnd0pi(0.0,2.0*M_PI);
Where am I going wrong ?
^
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
icc depends on GCC headers and libraries. What version of GCC is installed on your machine? Your example runs correctly with g++-4.8.1. It also runs correctly with icc-14.0.1.106 if you have that version of GCC (or later) installed.
$ g++ --version
g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ icc -V
Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.1.106 Build 20131008
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
$ icc -std=c++11 U506774.cpp && ./a.out
1.12105 1.24086 1.94634 1.30563 1.01601 1.07346 1.17482 1.4248 1.39896 1.72678
$
patrick
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
what is the icc version? can you post the code snippet? the gcc version?
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Version of icc is 13.1.0 20130121 , It is a random number generator
// Random number generator and distribution:
RNG rng; std::uniform_real_distribution<double> rnd;
do {
x = rnd(rng); y = rnd(rng);
} while(x*x+y*y>1);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I thought icpc 13.1 supported -std=c++11 (but not the temporary g++ option c++0x) when used with g++ 4.7 or newer, otherwise neither of those options would be supported. I'd be reluctant to try 13.1.0; the last 13.1 or most recent 14.0 seem better bets.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Same problem persists even with the icpc (ICC) 14.0.1 20131008 version.
Say for example, I want to compile this code,
#include <random> #include <iostream> int main() { std::random_device rd; std::mt19937 gen(rd()); std::uniform_real_distribution<> dis(1, 2); for (int n = 0; n < 10; ++n) { std::cout << dis(gen) << ' '; } std::cout << '\n'; }
I am getting errors like
rand.cpp(8): error: namespace "std" has no member "uniform_real_distribution"
std::uniform_real_distribution<> dis(1, 2);
^
rand.cpp(8): error: expected an expression
std::uniform_real_distribution<> dis(1, 2);
^
rand.cpp(10): error: identifier "dis" is undefined
std::cout << dis(gen) << ' ';
^
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
icc depends on GCC headers and libraries. What version of GCC is installed on your machine? Your example runs correctly with g++-4.8.1. It also runs correctly with icc-14.0.1.106 if you have that version of GCC (or later) installed.
$ g++ --version
g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ icc -V
Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.1.106 Build 20131008
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
$ icc -std=c++11 U506774.cpp && ./a.out
1.12105 1.24086 1.94634 1.30563 1.01601 1.07346 1.17482 1.4248 1.39896 1.72678
$
patrick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I get it thanks :) !

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page