[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] MSVC v16 'static const' error
From: |
Gisle Vanem |
Subject: |
[Discuss-gnuradio] MSVC v16 'static const' error |
Date: |
Wed, 15 Oct 2014 19:27:15 +0200 |
I just got this error from MSVC v16 while trying to compile
atsc_sync_impl.cc:
g:\gv\dx-radio\gnuradio-3.x\gr-dtv\lib\atsc\atsc_sync_impl.h(37) :
error C2864: 'gr::dtv::atsc_sync_impl::LOOP_FILTER_TAP' : only static const
integral data members can be initialized within a class
g:\gv\dx-radio\gnuradio-3.x\gr-dtv\lib\atsc\atsc_sync_impl.h(38) :
error C2864: 'gr::dtv::atsc_sync_impl::ADJUSTMENT_GAIN' : only static const
integral data members can be initialized within a class
The code works fine with g++ 4.7.2. I figured these 'private const data'
had to be initialised in the .cc-file. Here is how I patched it:
--- atsc_sync_impl.cc.orig 2014-08-18 22:46:57 +0000
+++ atsc_sync_impl.cc 2014-10-15 19:14:01 +0000
@@ -31,6 +31,9 @@
namespace gr {
namespace dtv {
+ const double atsc_sync_impl::LOOP_FILTER_TAP = 0.0005; // 0.0005 works
+ const double atsc_sync_impl::ADJUSTMENT_GAIN = 1.0e-5 / (10 *
ATSC_DATA_SEGMENT_LENGTH);
+
atsc_sync::sptr
atsc_sync::make(float rate)
{
--- atsc_sync_impl.h.orig 2014-08-18 22:46:57 +0000
+++ ./atsc_sync_impl.h 2014-10-15 19:24:45 +0000
@@ -34,8 +34,8 @@
class atsc_sync_impl : public atsc_sync
{
private:
- static const double LOOP_FILTER_TAP = 0.0005; // 0.0005 works
- static const double ADJUSTMENT_GAIN = 1.0e-5 / (10 *
ATSC_DATA_SEGMENT_LENGTH);
+ static const double LOOP_FILTER_TAP; // = 0.0005
+ static const double ADJUSTMENT_GAIN; // = 1.0e-5 / (10 *
ATSC_DATA_SEGMENT_LENGTH);
static const int SYMBOL_INDEX_OFFSET = 3;
static const int MIN_SEG_LOCK_CORRELATION_VALUE = 5;
static const int SSI_MIN = -16;
--gv
- [Discuss-gnuradio] MSVC v16 'static const' error,
Gisle Vanem <=