ulidtko 17.01.2012 17:28

http://ideone.com/6hMaM

чяднт, котаны.

> prog.cpp:24: error: invalid in-class initialization of static data member of non-integral type ‘uint16_t []’
> non-integral type ‘uint16_t []’

wtf?

C++, wtf
1. ulidtko 17.01.2012 17:30

А, кажется дошло. In-class initialization.
Ща вынесу за класс.

2. DZhon 17.01.2012 17:30 Azoth

с каких пор массивы стали интегральными типами ?

3. ulidtkoulidtko /1 17.01.2012 17:30

бля, но как?
класс же анонимный ._.

4. ulidtkoDZhon /2 17.01.2012 17:31

ок, но я помню, что так инициализировать было точно возможно. Чяднт?

5. gelraen 17.01.2012 17:31 imax

struct ololo {static uint16_t lut[256];}; static uint16_t ololo::lut = {...};

6. ulidtkogelraen /5 17.01.2012 17:31

/3
> анонимный struct

7. gelraenulidtko /4 17.01.2012 17:32

статические члены внутри обьявления класса никогда нельзя было инициализировать

8. gelraenulidtko /6 17.01.2012 17:32 imax

сделай неанонимным, еба

9. ulidtkogelraen /7 17.01.2012 17:32

okay ._.

10. DZhongelraen /7 17.01.2012 17:32 Azoth

FAIL. Константные можно.

11. gelraenDZhon /10 17.01.2012 17:32 imax

rly? ok.

12. ulidtkogelraen /8 17.01.2012 17:32

не хочу, говно же. Мне только один инстанс нужен.

13. gelraenulidtko /12 17.01.2012 17:33 imax

зачем тебе целая структура?

14. ulidtkogelraen /13 17.01.2012 17:34

стандартная идиома функтора же

предлагаешь одной функцией, а lut внутри static?

15. gelraenulidtko /14 17.01.2012 17:34 imax

why not?

16. DZhonulidtko /14 17.01.2012 17:36 Azoth

На вот так http://ideone.com/11tRt

17. DZhonulidtko /4 17.01.2012 17:38 Azoth

Можно как раз только интегральные статики, кхм. Именно статики.

18. Crazy_Owl 17.01.2012 17:40 Miranda

>чяднт
Пишешь на C++

19. DZhon 17.01.2012 17:42 Azoth

И да, "You can only have one definition of a static member in a program. Unnamed classes, classes contained within unnamed classes, and local classes cannot have static data members".

20. ulidtkoDZhon /19 17.01.2012 17:48

печалька, блджад :\

21. ulidtkoCrazy_Owl /18 17.01.2012 17:48

уходи, этот тред не для тебя.

22. DZhonulidtko /20 17.01.2012 17:49 Azoth

анонимные неймспейсы сделают "почти" то же самое же. Хоть линковка и будет внтутренней, но сам неймспейс имитирует внешнюю, как статик.

23. ulidtkoDZhon /22 17.01.2012 17:57

ну, мне тут подойдёт и всё в одной функции. Локальность кода полущ, на расширяемость похуй, objdump -SD показывает только хорошее.

24. Sany 17.01.2012 18:04 Home

зачем вообще в структуру этот массив запихивать?
1) как я понимаю, нужно сделать массив константным
2) запихать в безымянный неймспейс или сделать статическим константным локальным массивом функции uint16_t gamma_decompress(uint8_t compressed_value);
3) создавать свои функторы не комильфо, потому что есть boost::function
то есть лишняя структура, а тем более безымянная тут не нужна.

25. ulidtkoSany /24 17.01.2012 18:08

да, я сделал 2)

26. Sanyulidtko /25 17.01.2012 18:09 Home

в 2) два варианта, интересно какой?

27. ulidtkoSany /26 17.01.2012 18:13

второй, /23

Do you really want to delete ?