Неоднозначность shared_from_this
    
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.5] | 
 
 | 
		
  | 
| Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) | 
    Неоднозначность shared_from_this
    
  | 
         
         
         
          
           Сообщ.
           #16
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Тебе нужно видеть из h-файла все приватные мемберы, чтобы сказать о размере. Ты хочешь двух правил для мемберов-полей и мемберов-функций? Добавлено Иными словами наследники и клиенты класса и так не защищены от изменения приватной части. Так чего ты ещё хочешь?  | 
    
| 
         
         
         
          
           Сообщ.
           #17
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата MyNameIsIgor @  Тебе нужно видеть из h-файла все приватные мемберы, чтобы сказать о размере. Ты хочешь двух правил для мемберов-полей и мемберов-функций? Так "видь" размер. Какое это отношение имеет к доступности имен?  | 
    
| 
         
         
         
          
           Сообщ.
           #18
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          В том то и дело, что знает. И в этом отличительная черта объектой модели Плюсов. Ты можешь обойти инкапсуляцию, если очень надо, и иначе никак. Это будет говнокод, но не всё говнокод, что так выглядит, иногда говнокодом является не он сам, а его основополагающая база, и написанный тобой говнокод - это едиственный способ решить проблему. В случее PImpl такого в принципе невозможно будет сделать. Выбор как всегда на нами, а не языком.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #19
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата D_KEY @  Так "видь" размер. Какое это отношение имеет к доступности имен? Так они не доступны   Ты не можешь их вызвать и обратиться к ним.   | 
    
| 
         
         
         
          
           Сообщ.
           #20
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Я не говорю о Pimpl. Речь о том, что спецификаторы доступа должны влиять на поиск имен. Клиенту должны быть недоступны имена из закрытой части.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #21
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата D_KEY @  Клиенту должны быть недоступны имена из закрытой части. Они и так недоступны! Ты же хочешь, чтобы они были невидимы. Т.е. превратить спецификаторы доступа в спецификаторы видимости.  | 
    
| 
         
         
         
          
           Сообщ.
           #22
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата MyNameIsIgor @  Цитата D_KEY @  Так "видь" размер. Какое это отношение имеет к доступности имен? Так они не доступны   Ты не можешь их вызвать и обратиться к ним.Недоступны мемберы. А имена - доступны. См. мой пример с неоднозначностью из-за добавления закрытого метода в базовый класс. Представь себе SFINAE с выбором специализации, допустим, по наличию внутреннего типа. Если у тебя будет соответствующий private-тип то SFINAE просто не сработает, а код не скомпилируется... Хотя надо попробовать      | 
    
| 
         
         
         
          
           Сообщ.
           #23
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата D_KEY @  Недоступны мемберы. А имена - доступны. Так вот и давай говорить о доступности и о видимости, ok? Цитата D_KEY @  Представь себе SFINAE с выбором специализации, допустим, по наличию внутреннего типа. Если у тебя будет соответствующий private-тип то SFINAE просто не сработает, а код не скомпилируется... Да, я в курсе. И?  | 
    
| 
         
         
         
          
           Сообщ.
           #24
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата MyNameIsIgor @  Цитата D_KEY @  Недоступны мемберы. А имена - доступны. Так вот и давай говорить о доступности и о видимости, ok? Имена-то доступны   Ладно, ок, давно плюсовую литературу не читал   Цитата  Да, я в курсе. И? Почему это правильно(если в интерфейсе класса этого самого внутреннего типа нет) и ради чего, собственно?  | 
    
| 
         
         
         
          
           Сообщ.
           #25
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата D_KEY @  Почему это правильно(если в интерфейсе класса этого самого внутреннего типа нет) и ради чего, собственно? Нужно освежить по D&E, там этому не мало посвящено. Просто мне кажется это логичным при механизме текстовых include'ов - мы и так всё видим, зачем делать вид, что нет?  | 
    
| 
         
         
         
          
           Сообщ.
           #26
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата MyNameIsIgor @  Нужно освежить по D&E, там этому не мало посвящено. Да, я вот тоже вспомнить не могу... Сегодня посмотрю   Цитата  Просто мне кажется это логичным при механизме текстовых include'ов - мы и так всё видим, зачем делать вид, что нет? Потому, что это делает менее логичным поиск имен.  | 
    
| 
         
         
         
          
           Сообщ.
           #27
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата D_KEY @  Потому, что это делает менее логичным поиск имен. Вот у тебя возникали серьёзные проблемы или ты только сейчас так разошёлся?     | 
    
| 
         
         
         
          
           Сообщ.
           #28
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата MyNameIsIgor @  Вот у тебя возникали серьёзные проблемы Неа. Но я вообще не помню, чтобы мне как-то помогали private/protected/public. Это же не повод...     |